Skip to content

Instantly share code, notes, and snippets.

@0x6a68
Created November 26, 2020 09:02
Show Gist options
  • Save 0x6a68/f9b60a3330c96d30a7957a03e42cd732 to your computer and use it in GitHub Desktop.
Save 0x6a68/f9b60a3330c96d30a7957a03e42cd732 to your computer and use it in GitHub Desktop.
vim-projectionist: typescript + react
{
"*.tsx": {
"alternate": "{dirname}/__tests__/{basename}.test.tsx",
"type": "source",
"template": [
"import type {open} FC {close} from 'react';",
"",
"type {basename|camelcase|capitalize}Props = {open}",
" property?: unknown;",
"{close};",
"",
"const {basename|camelcase|capitalize}: FC<{basename|camelcase|capitalize}Props> = _props => {",
" return <div>{basename|camelcase|capitalize}</div>;",
"};",
"",
"export default {basename|camelcase|capitalize};"
]
},
"**/__tests__/*.test.tsx": {
"alternate": "{}.tsx",
"type": "test",
"template": [
"import {open} render {close} from '@/test-utils';",
"import {basename|camelcase|capitalize} from '@/{dirname}/{basename}';",
"",
"describe('{basename|camelcase|capitalize}', () => {open}",
" it('matches snapshot', () => {open}",
" const {open} asFragment {close} = render(<{basename|camelcase|capitalize} />, {open}{close});",
" expect(asFragment()).toMatchSnapshot();",
" {close});",
"{close});"
]
},
"*.ts": {
"alternate": "{dirname}/__tests__/{basename}.test.ts",
"type": "source"
},
"**/__tests__/*.test.ts": {
"alternate": "{}.ts",
"type": "test",
"template": [
"import {basename|camelcase|capitalize} from '@/{dirname}/{basename}';",
"",
"describe('{basename|camelcase|capitalize}', () => {open}",
" it('works', () => {open}",
" expect(true).toBe(true);",
" {close});",
"{close});"
]
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment