46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
|
import type { Linter } from 'eslint';
|
||
|
|
||
|
import { interopDefault } from '../util';
|
||
|
|
||
|
export async function test(): Promise<Linter.Config[]> {
|
||
|
const [pluginTest, pluginNoOnlyTests] = await Promise.all([
|
||
|
interopDefault(import('eslint-plugin-vitest')),
|
||
|
// @ts-expect-error - no types
|
||
|
interopDefault(import('eslint-plugin-no-only-tests')),
|
||
|
] as const);
|
||
|
|
||
|
return [
|
||
|
{
|
||
|
files: [
|
||
|
`**/__tests__/**/*.?([cm])[jt]s?(x)`,
|
||
|
`**/*.spec.?([cm])[jt]s?(x)`,
|
||
|
`**/*.test.?([cm])[jt]s?(x)`,
|
||
|
`**/*.bench.?([cm])[jt]s?(x)`,
|
||
|
`**/*.benchmark.?([cm])[jt]s?(x)`,
|
||
|
],
|
||
|
plugins: {
|
||
|
test: {
|
||
|
...pluginTest,
|
||
|
rules: {
|
||
|
...pluginTest.rules,
|
||
|
...pluginNoOnlyTests.rules,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
rules: {
|
||
|
'no-console': 'off',
|
||
|
'node/prefer-global/process': 'off',
|
||
|
'test/consistent-test-it': [
|
||
|
'error',
|
||
|
{ fn: 'it', withinDescribe: 'it' },
|
||
|
],
|
||
|
'test/no-identical-title': 'error',
|
||
|
'test/no-import-node-test': 'error',
|
||
|
'test/no-only-tests': 'error',
|
||
|
'test/prefer-hooks-in-order': 'error',
|
||
|
'test/prefer-lowercase-title': 'error',
|
||
|
},
|
||
|
},
|
||
|
];
|
||
|
}
|