@@ -3,37 +3,23 @@ import path from 'node:path';
33import process from 'node:process' ;
44import { fileURLToPath } from 'node:url' ;
55import { type MockInstance , describe , expect , it } from 'vitest' ;
6- import type {
7- AuditOutput ,
8- AuditOutputs ,
9- Issue ,
10- RunnerFilesPaths ,
11- } from '@code-pushup/models' ;
6+ import type { Audit , AuditOutput , Issue } from '@code-pushup/models' ;
127import { osAgnosticAuditOutputs } from '@code-pushup/test-utils' ;
13- import { readJsonFile } from '@code-pushup/utils' ;
148import type { ESLintTarget } from './config.js' ;
159import { listAuditsAndGroups } from './meta/index.js' ;
16- import { createRunnerConfig , executeRunner } from './runner/index.js' ;
10+ import { createRunnerFunction } from './runner/index.js' ;
1711
1812describe ( 'executeRunner' , ( ) => {
1913 let cwdSpy : MockInstance < [ ] , string > ;
2014 let platformSpy : MockInstance < [ ] , NodeJS . Platform > ;
2115
22- const createPluginConfig = async (
16+ const createAudits = async (
2317 eslintrc : ESLintTarget [ 'eslintrc' ] ,
24- ) : Promise < RunnerFilesPaths > => {
18+ ) : Promise < Audit [ ] > => {
2519 const patterns = [ 'src/**/*.js' , 'src/**/*.jsx' ] ;
2620 const targets : ESLintTarget [ ] = [ { eslintrc, patterns } ] ;
2721 const { audits } = await listAuditsAndGroups ( targets ) ;
28- const { outputFile, configFile } = await createRunnerConfig (
29- 'bin.js' ,
30- audits ,
31- targets ,
32- ) ;
33- return {
34- runnerOutputPath : outputFile ,
35- runnerConfigPath : configFile ! ,
36- } ;
22+ return audits ;
3723 } ;
3824
3925 const appDir = path . join (
@@ -57,24 +43,35 @@ describe('executeRunner', () => {
5743 } ) ;
5844
5945 it ( 'should execute ESLint and create audit results for React application' , async ( ) => {
60- const runnerPaths = await createPluginConfig ( 'eslint.config.js' ) ;
61- await executeRunner ( runnerPaths ) ;
62-
63- const json = await readJsonFile < AuditOutputs > ( runnerPaths . runnerOutputPath ) ;
64- expect ( osAgnosticAuditOutputs ( json ) ) . toMatchSnapshot ( ) ;
46+ const eslintTarget = 'eslint.config.js' ;
47+ const runnerFn = await createRunnerFunction ( {
48+ audits : await createAudits ( eslintTarget ) ,
49+ targets : [
50+ {
51+ eslintrc : eslintTarget ,
52+ patterns : '.' ,
53+ } ,
54+ ] ,
55+ } ) ;
56+ const res = await runnerFn ( { outputDir : '' } ) ;
57+ await expect ( osAgnosticAuditOutputs ( res ) ) . resolves . toMatchSnapshot ( ) ;
6558 } ) ;
6659
6760 it . skipIf ( process . platform === 'win32' ) (
6861 'should execute runner with custom config using @code-pushup/eslint-config' ,
6962 async ( ) => {
70- const runnerPaths = await createPluginConfig (
71- 'code-pushup.eslint.config.mjs' ,
72- ) ;
73- await executeRunner ( runnerPaths ) ;
63+ const eslintTarget = 'eslint.config.js' ;
64+ const runnerFn = await createRunnerFunction ( {
65+ audits : await createAudits ( eslintTarget ) ,
66+ targets : [
67+ {
68+ eslintrc : 'code-pushup.eslint.config.mjs' ,
69+ patterns : '.' ,
70+ } ,
71+ ] ,
72+ } ) ;
7473
75- const json = await readJsonFile < AuditOutput [ ] > (
76- runnerPaths . runnerOutputPath ,
77- ) ;
74+ const json = await runnerFn ( { outputDir : '' } ) ;
7875 // expect warnings from unicorn/filename-case rule from default config
7976 expect ( json ) . toContainEqual (
8077 expect . objectContaining < Partial < AuditOutput > > ( {
0 commit comments