Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 64dd17b

Browse files
test: re-add eslint unit tests (#575)
1 parent e8350a9 commit 64dd17b

File tree

2 files changed

+104
-2
lines changed

2 files changed

+104
-2
lines changed

‎__test__/renderEslint.spec.ts

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
import { it, describe, expect } from 'vitest'
2+
import { getAdditionalConfigs } from '../utils/renderEslint'
3+
4+
describe('renderEslint', () => {
5+
it('should get additional dependencies and config with no test flags', () => {
6+
const additionalConfigs = getAdditionalConfigs({
7+
needsVitest: false,
8+
needsCypress: false,
9+
needsCypressCT: false,
10+
needsPlaywright: false
11+
})
12+
expect(additionalConfigs).toStrictEqual([])
13+
})
14+
15+
it('should get additional dependencies and config with for vitest', () => {
16+
const additionalConfigs = getAdditionalConfigs({
17+
needsVitest: true,
18+
needsCypress: false,
19+
needsCypressCT: false,
20+
needsPlaywright: false
21+
})
22+
expect(additionalConfigs).toHaveLength(1)
23+
const [additionalVitestConfig] = additionalConfigs
24+
expect(additionalVitestConfig.devDependencies['@vitest/eslint-plugin']).not.toBeUndefined()
25+
expect(additionalVitestConfig.afterVuePlugin).toHaveLength(1)
26+
const [additionalVitestPlugin] = additionalVitestConfig.afterVuePlugin!
27+
expect(additionalVitestPlugin.importer).toBe(`import pluginVitest from '@vitest/eslint-plugin'`)
28+
expect(additionalVitestPlugin.content).toContain('...pluginVitest.configs.recommended')
29+
expect(additionalVitestPlugin.content).toContain("files: ['src/**/__tests__/*']")
30+
})
31+
32+
it('should get additional dependencies and config with for cypress', () => {
33+
const additionalConfigs = getAdditionalConfigs({
34+
needsVitest: false,
35+
needsCypress: true,
36+
needsCypressCT: false,
37+
needsPlaywright: false
38+
})
39+
expect(additionalConfigs).toHaveLength(1)
40+
const [additionalCypressConfig] = additionalConfigs
41+
expect(additionalCypressConfig.devDependencies['eslint-plugin-cypress']).not.toBeUndefined()
42+
expect(additionalCypressConfig.afterVuePlugin).toHaveLength(1)
43+
const [additionalCypressPlugin] = additionalCypressConfig.afterVuePlugin!
44+
expect(additionalCypressPlugin.importer).toBe(
45+
"import pluginCypress from 'eslint-plugin-cypress/flat'"
46+
)
47+
expect(additionalCypressPlugin.content).toContain('...pluginCypress.configs.recommended')
48+
expect(additionalCypressPlugin.content).toContain(
49+
"'cypress/e2e/**/*.{cy,spec}.{js,ts,jsx,tsx}'"
50+
)
51+
expect(additionalCypressPlugin.content).toContain("'cypress/support/**/*.{js,ts,jsx,tsx}'")
52+
})
53+
54+
it('should get additional dependencies and config with for cypress with component testing', () => {
55+
const additionalConfigs = getAdditionalConfigs({
56+
needsVitest: false,
57+
needsCypress: true,
58+
needsCypressCT: true,
59+
needsPlaywright: false
60+
})
61+
expect(additionalConfigs).toHaveLength(1)
62+
const [additionalCypressConfig] = additionalConfigs
63+
expect(additionalCypressConfig.devDependencies['eslint-plugin-cypress']).not.toBeUndefined()
64+
expect(additionalCypressConfig.afterVuePlugin).toHaveLength(1)
65+
const [additionalCypressPlugin] = additionalCypressConfig.afterVuePlugin!
66+
expect(additionalCypressPlugin.importer).toBe(
67+
"import pluginCypress from 'eslint-plugin-cypress/flat'"
68+
)
69+
expect(additionalCypressPlugin.content).toContain('...pluginCypress.configs.recommended')
70+
expect(additionalCypressPlugin.content).toContain("'**/__tests__/*.{cy,spec}.{js,ts,jsx,tsx}'")
71+
expect(additionalCypressPlugin.content).toContain(
72+
"'cypress/e2e/**/*.{cy,spec}.{js,ts,jsx,tsx}'"
73+
)
74+
expect(additionalCypressPlugin.content).toContain("'cypress/support/**/*.{js,ts,jsx,tsx}'")
75+
})
76+
77+
it('should get additional dependencies and config with for playwright', () => {
78+
const additionalConfigs = getAdditionalConfigs({
79+
needsVitest: false,
80+
needsCypress: false,
81+
needsCypressCT: false,
82+
needsPlaywright: true
83+
})
84+
expect(additionalConfigs).toHaveLength(1)
85+
const [additionalPlaywrightConfig] = additionalConfigs
86+
expect(
87+
additionalPlaywrightConfig.devDependencies['eslint-plugin-playwright']
88+
).not.toBeUndefined()
89+
expect(additionalPlaywrightConfig.afterVuePlugin).toHaveLength(1)
90+
const [additionalPlaywrightPlugin] = additionalPlaywrightConfig.afterVuePlugin!
91+
expect(additionalPlaywrightPlugin.importer).toBe(
92+
"import pluginPlaywright from 'eslint-plugin-playwright'"
93+
)
94+
expect(additionalPlaywrightPlugin.content).toContain(
95+
"...pluginPlaywright.configs['flat/recommended']"
96+
)
97+
expect(additionalPlaywrightPlugin.content).toContain(
98+
"files: ['e2e/**/*.{test,spec}.{js,ts,jsx,tsx}']"
99+
)
100+
})
101+
})

‎utils/renderEslint.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ export function getAdditionalConfigs({
8383
importer: `import pluginVitest from '@vitest/eslint-plugin'`,
8484
content: `
8585
{
86-
...pluginVitest.configs['recommended'],
86+
...pluginVitest.configs.recommended,
8787
files: ['src/**/__tests__/*'],
8888
},`
8989
}
@@ -107,7 +107,8 @@ export function getAdditionalConfigs({
107107
'cypress/support/**/*.{js,ts,jsx,tsx}'
108108
]
109109
.map(JSON.stringify.bind(JSON))
110-
.join(',\n ')}
110+
.join(',\n ')
111+
.replace(/"/g, "'")} // use single quotes as in the other configs
111112
],
112113
},`
113114
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /