| 
1 | 1 | import assert from 'assert';  | 
2 | 2 | import plugin from '../../../src/index.js';  | 
3 |  | -import { ESLint } from '../../utils/eslint-compat.js';  | 
 | 3 | +import { loadESLint, type ESLint as ESLintClass } from 'eslint';  | 
4 | 4 | import * as svelteParser from 'svelte-eslint-parser';  | 
5 | 5 | 
 
  | 
6 | 6 | // -----------------------------------------------------------------------------  | 
7 | 7 | // Tests  | 
8 | 8 | // -----------------------------------------------------------------------------  | 
9 | 9 | 
 
  | 
10 |  | -// Initialize linter.  | 
11 |  | -const linter = new ESLint({  | 
12 |  | -	// @ts-expect-error -- Type error?  | 
13 |  | -	baseConfig: {  | 
14 |  | -		languageOptions: {  | 
15 |  | -			parser: svelteParser,  | 
16 |  | -			ecmaVersion: 2020  | 
17 |  | -		},  | 
18 |  | -		plugins: {  | 
19 |  | -			svelte: plugin  | 
20 |  | -		},  | 
21 |  | -		rules: {  | 
22 |  | -			'no-undef': 'error',  | 
23 |  | -			'space-infix-ops': 'error',  | 
24 |  | -			'svelte/no-at-html-tags': 'error',  | 
25 |  | -			'svelte/comment-directive': 'error'  | 
26 |  | -		},  | 
27 |  | -		processor: 'svelte/svelte',  | 
28 |  | -		files: ['**']  | 
29 |  | -	},  | 
30 |  | -	overrideConfigFile: true  | 
31 |  | -});  | 
32 |  | - | 
33 | 10 | describe('comment-directive', () => {  | 
 | 11 | +	let ESLint: typeof ESLintClass;  | 
 | 12 | +	let linter: InstanceType<typeof ESLintClass>;  | 
 | 13 | + | 
 | 14 | +	before(async () => {  | 
 | 15 | +		ESLint = await loadESLint({ useFlatConfig: true });  | 
 | 16 | +		linter = new ESLint({  | 
 | 17 | +			baseConfig: {  | 
 | 18 | +				languageOptions: {  | 
 | 19 | +					parser: svelteParser,  | 
 | 20 | +					ecmaVersion: 2020  | 
 | 21 | +				},  | 
 | 22 | +				plugins: {  | 
 | 23 | +					svelte: plugin  | 
 | 24 | +				},  | 
 | 25 | +				rules: {  | 
 | 26 | +					'no-undef': 'error',  | 
 | 27 | +					'space-infix-ops': 'error',  | 
 | 28 | +					'svelte/no-at-html-tags': 'error',  | 
 | 29 | +					'svelte/comment-directive': 'error'  | 
 | 30 | +				},  | 
 | 31 | +				processor: 'svelte/svelte',  | 
 | 32 | +				files: ['**']  | 
 | 33 | +			},  | 
 | 34 | +			overrideConfigFile: true  | 
 | 35 | +		});  | 
 | 36 | +	});  | 
 | 37 | + | 
34 | 38 | 	describe('eslint-disable/eslint-enable', () => {  | 
35 | 39 | 		it('disable all rules if <!-- eslint-disable -->', async () => {  | 
36 | 40 | 			const code = `  | 
@@ -351,27 +355,29 @@ describe('comment-directive', () => {  | 
351 | 355 | 	});  | 
352 | 356 | 
 
  | 
353 | 357 | 	describe('reportUnusedDisableDirectives', () => {  | 
354 |  | -		const linter = new ESLint({  | 
355 |  | -			// @ts-expect-error -- Type error?  | 
356 |  | -			baseConfig: {  | 
357 |  | -				languageOptions: {  | 
358 |  | -					parser: svelteParser,  | 
359 |  | -					ecmaVersion: 2020  | 
360 |  | -				},  | 
361 |  | -				plugins: {  | 
362 |  | -					svelte: plugin  | 
363 |  | -				},  | 
364 |  | -				rules: {  | 
365 |  | -					'no-unused-vars': 'error',  | 
366 |  | -					'svelte/comment-directive': ['error', { reportUnusedDisableDirectives: true }],  | 
367 |  | -					'svelte/no-at-html-tags': 'error',  | 
368 |  | -					'svelte/no-at-debug-tags': 'error'  | 
 | 358 | +		before(() => {  | 
 | 359 | +			linter = new ESLint({  | 
 | 360 | +				baseConfig: {  | 
 | 361 | +					languageOptions: {  | 
 | 362 | +						parser: svelteParser,  | 
 | 363 | +						ecmaVersion: 2020  | 
 | 364 | +					},  | 
 | 365 | +					plugins: {  | 
 | 366 | +						svelte: plugin  | 
 | 367 | +					},  | 
 | 368 | +					rules: {  | 
 | 369 | +						'no-unused-vars': 'error',  | 
 | 370 | +						'svelte/comment-directive': ['error', { reportUnusedDisableDirectives: true }],  | 
 | 371 | +						'svelte/no-at-html-tags': 'error',  | 
 | 372 | +						'svelte/no-at-debug-tags': 'error'  | 
 | 373 | +					},  | 
 | 374 | +					files: ['**'],  | 
 | 375 | +					processor: 'svelte/svelte'  | 
369 | 376 | 				},  | 
370 |  | -				files: ['**'],  | 
371 |  | -				processor: 'svelte/svelte'  | 
372 |  | -			},  | 
373 |  | -			overrideConfigFile: true  | 
 | 377 | +				overrideConfigFile: true  | 
 | 378 | +			});  | 
374 | 379 | 		});  | 
 | 380 | + | 
375 | 381 | 		it('report unused <!-- eslint-disable -->', async () => {  | 
376 | 382 | 			const code = `  | 
377 | 383 |         <!-- eslint-disable -->  | 
 | 
0 commit comments