describe('renderEslint', () => {
it('should get additional dependencies and config with no test flags', () => {
const { additionalConfig, additionalDependencies } = getAdditionalConfigAndDependencies({
+ needsVitest: false,
needsCypress: false,
needsCypressCT: false,
needsPlaywright: false
expect(additionalDependencies).toStrictEqual({})
})
+ it('should get additional dependencies and config with for vitest', () => {
+ const { additionalConfig, additionalDependencies } = getAdditionalConfigAndDependencies({
+ needsVitest: true,
+ needsCypress: false,
+ needsCypressCT: false,
+ needsPlaywright: false
+ })
+ expect(additionalConfig.overrides[0].files).toStrictEqual([
+ 'src/**/*.{test,spec}.{js,ts,jsx,tsx}'
+ ])
+ expect(additionalConfig.overrides[0].extends).toStrictEqual([
+ 'plugin:@vitest/legacy-recommended'
+ ])
+ expect(additionalDependencies['@vitest/eslint-plugin']).not.toBeUndefined()
+ })
+
it('should get additional dependencies and config with for cypress', () => {
const { additionalConfig, additionalDependencies } = getAdditionalConfigAndDependencies({
+ needsVitest: false,
needsCypress: true,
needsCypressCT: false,
needsPlaywright: false
it('should get additional dependencies and config with for cypress with component testing', () => {
const { additionalConfig, additionalDependencies } = getAdditionalConfigAndDependencies({
+ needsVitest: false,
needsCypress: true,
needsCypressCT: true,
needsPlaywright: false
it('should get additional dependencies and config with for playwright', () => {
const { additionalConfig, additionalDependencies } = getAdditionalConfigAndDependencies({
+ needsVitest: false,
needsCypress: false,
needsCypressCT: false,
needsPlaywright: true
export default function renderEslint(
rootDir,
- { needsTypeScript, needsCypress, needsCypressCT, needsPrettier, needsPlaywright }
+ { needsTypeScript, needsVitest, needsCypress, needsCypressCT, needsPrettier, needsPlaywright }
) {
const { additionalConfig, additionalDependencies } = getAdditionalConfigAndDependencies({
+ needsVitest,
needsCypress,
needsCypressCT,
needsPlaywright
// visible for testing
export function getAdditionalConfigAndDependencies({
+ needsVitest,
needsCypress,
needsCypressCT,
needsPlaywright
const additionalConfig: Linter.Config = {}
const additionalDependencies = {}
+ if (needsVitest) {
+ additionalConfig.overrides = [
+ {
+ files: ['src/**/*.{test,spec}.{js,ts,jsx,tsx}'],
+ extends: ['plugin:@vitest/legacy-recommended']
+ }
+ ]
+
+ additionalDependencies['@vitest/eslint-plugin'] = eslintDeps['@vitest/eslint-plugin']
+ }
+
if (needsCypress) {
additionalConfig.overrides = [
{