1- import { writeFile } from 'node:fs/promises' ;
21import path from 'node:path' ;
32import { fileURLToPath } from 'node:url' ;
4- import { describe , it } from 'vitest' ;
3+ import { expect } from 'vitest' ;
54import type {
65 AuditOutput ,
76 AuditOutputs ,
87 RunnerConfig ,
98} from '@code-pushup/models' ;
10- import { readJsonFile , removeDirectoryIfExists } from '@code-pushup/utils' ;
9+ import { createRunnerFiles , readJsonFile } from '@code-pushup/utils' ;
1110import type { FinalCoveragePluginConfig } from '../config.js' ;
12- import {
13- PLUGIN_CONFIG_PATH ,
14- RUNNER_OUTPUT_PATH ,
15- WORKDIR ,
16- } from './constants.js' ;
1711import { createRunnerConfig , executeRunner } from './index.js' ;
1812
1913describe ( 'createRunnerConfig' , ( ) => {
@@ -25,26 +19,32 @@ describe('createRunnerConfig', () => {
2519 } ) ;
2620 expect ( runnerConfig ) . toStrictEqual < RunnerConfig > ( {
2721 command : 'node' ,
28- args : [ '"executeRunner.ts"' ] ,
22+ args : [
23+ '"executeRunner.ts"' ,
24+ expect . stringContaining ( 'plugin-config.json' ) ,
25+ expect . stringContaining ( 'runner-output.json' ) ,
26+ ] ,
2927 outputTransform : expect . any ( Function ) ,
3028 outputFile : expect . stringContaining ( 'runner-output.json' ) ,
29+ configFile : expect . stringContaining ( 'plugin-config.json' ) ,
3130 } ) ;
3231 } ) ;
3332
3433 it ( 'should provide plugin config to runner in JSON file' , async ( ) => {
35- await removeDirectoryIfExists ( WORKDIR ) ;
36-
3734 const pluginConfig : FinalCoveragePluginConfig = {
3835 coverageTypes : [ 'line' ] ,
3936 reports : [ 'coverage/lcov.info' ] ,
4037 coverageToolCommand : { command : 'npm' , args : [ 'run' , 'test' ] } ,
4138 perfectScoreThreshold : 85 ,
4239 } ;
4340
44- await createRunnerConfig ( 'executeRunner.ts' , pluginConfig ) ;
41+ const { configFile } = await createRunnerConfig (
42+ 'executeRunner.ts' ,
43+ pluginConfig ,
44+ ) ;
4545
46- const config =
47- await readJsonFile < FinalCoveragePluginConfig > ( PLUGIN_CONFIG_PATH ) ;
46+ expect ( configFile ) . toMatch ( / . * p l u g i n - c o n f i g \. j s o n $ / ) ;
47+ const config = await readJsonFile < FinalCoveragePluginConfig > ( configFile ! ) ;
4848 expect ( config ) . toStrictEqual ( pluginConfig ) ;
4949 } ) ;
5050} ) ;
@@ -65,10 +65,15 @@ describe('executeRunner', () => {
6565 coverageTypes : [ 'line' ] ,
6666 } ;
6767
68- await writeFile ( PLUGIN_CONFIG_PATH , JSON . stringify ( config ) ) ;
69- await executeRunner ( ) ;
68+ const runnerFiles = await createRunnerFiles (
69+ 'coverage' ,
70+ JSON . stringify ( config ) ,
71+ ) ;
72+ await executeRunner ( runnerFiles ) ;
7073
71- const results = await readJsonFile < AuditOutputs > ( RUNNER_OUTPUT_PATH ) ;
74+ const results = await readJsonFile < AuditOutputs > (
75+ runnerFiles . runnerOutputPath ,
76+ ) ;
7277 expect ( results ) . toStrictEqual ( [
7378 expect . objectContaining ( {
7479 slug : 'line-coverage' ,
0 commit comments