diff --git a/examples/cli-e2e/mocks/code-pushup.config.js b/examples/cli-e2e/mocks/code-pushup.config.js index 35d2f93d1..abf42cbf8 100644 --- a/examples/cli-e2e/mocks/code-pushup.config.js +++ b/examples/cli-e2e/mocks/code-pushup.config.js @@ -3,7 +3,7 @@ import lighthousePlugin from '../../../dist/packages/plugin-lighthouse'; export default { - persist: { outputPath: 'tmp/cli-config-out.json' }, + persist: { outputDir: 'tmp/cli-config-out.json' }, categories: [], plugins: [ // TODO: uncomment once runner is implemented diff --git a/examples/cli-e2e/mocks/code-pushup.config.mjs b/examples/cli-e2e/mocks/code-pushup.config.mjs index 35d2f93d1..abf42cbf8 100644 --- a/examples/cli-e2e/mocks/code-pushup.config.mjs +++ b/examples/cli-e2e/mocks/code-pushup.config.mjs @@ -3,7 +3,7 @@ import lighthousePlugin from '../../../dist/packages/plugin-lighthouse'; export default { - persist: { outputPath: 'tmp/cli-config-out.json' }, + persist: { outputDir: 'tmp/cli-config-out.json' }, categories: [], plugins: [ // TODO: uncomment once runner is implemented diff --git a/examples/cli-e2e/mocks/code-pushup.config.ts b/examples/cli-e2e/mocks/code-pushup.config.ts index 35d2f93d1..abf42cbf8 100644 --- a/examples/cli-e2e/mocks/code-pushup.config.ts +++ b/examples/cli-e2e/mocks/code-pushup.config.ts @@ -3,7 +3,7 @@ import lighthousePlugin from '../../../dist/packages/plugin-lighthouse'; export default { - persist: { outputPath: 'tmp/cli-config-out.json' }, + persist: { outputDir: 'tmp/cli-config-out.json' }, categories: [], plugins: [ // TODO: uncomment once runner is implemented diff --git a/packages/cli/code-pushup.config.ts b/packages/cli/code-pushup.config.ts index c9c216aaa..52ca0f539 100644 --- a/packages/cli/code-pushup.config.ts +++ b/packages/cli/code-pushup.config.ts @@ -1,4 +1,4 @@ -const outputPath = 'tmp'; +const outputDir = 'tmp'; export default { upload: { @@ -7,7 +7,7 @@ export default { apiKey: 'dummy-api-key', server: 'https://example.com/api', }, - persist: { outputPath }, + persist: { outputDir }, plugins: [ { slug: 'dummy-plugin', @@ -41,7 +41,7 @@ export default { command: 'node', args: [ '-e', - `require('fs').writeFileSync('${outputPath}/dummy-plugin-output.json', '${JSON.stringify( + `require('fs').writeFileSync('${outputDir}/dummy-plugin-output.json', '${JSON.stringify( [ { title: 'Dummy Audit 1', @@ -64,7 +64,7 @@ export default { ], )}')`, ], - outputPath: `${outputPath}/dummy-plugin-output.json`, + outputFile: `${outputDir}/dummy-plugin-output.json`, }, }, ], diff --git a/packages/cli/src/lib/collect/command-object.spec.ts b/packages/cli/src/lib/collect/command-object.spec.ts index f986287d5..a0d9f0d53 100644 --- a/packages/cli/src/lib/collect/command-object.spec.ts +++ b/packages/cli/src/lib/collect/command-object.spec.ts @@ -35,7 +35,7 @@ describe('collect-command-object', () => { }), ]; const parsedArgv = await cli(args).parseAsync(); - expect(parsedArgv.persist.outputPath).toBe('tmp'); + expect(parsedArgv.persist.outputDir).toBe('tmp'); expect(parsedArgv.persist?.format).toEqual(['md']); }); }); diff --git a/packages/cli/src/lib/implementation/config-middleware.spec.ts b/packages/cli/src/lib/implementation/config-middleware.spec.ts index e745977a4..0b46a928a 100644 --- a/packages/cli/src/lib/implementation/config-middleware.spec.ts +++ b/packages/cli/src/lib/implementation/config-middleware.spec.ts @@ -14,21 +14,21 @@ describe('applyConfigMiddleware', () => { const configPathMjs = configPath('mjs'); const config = await configMiddleware({ configPath: configPathMjs }); expect(config.upload.project).toContain('mjs'); - expect(config.persist.outputPath).toContain('tmp'); + expect(config.persist.outputDir).toContain('tmp'); }); it('should load valid .cjs config', async () => { const configPathCjs = configPath('cjs'); const config = await configMiddleware({ configPath: configPathCjs }); expect(config.upload.project).toContain('cjs'); - expect(config.persist.outputPath).toContain('tmp'); + expect(config.persist.outputDir).toContain('tmp'); }); it('should load valid .js config', async () => { const configPathJs = configPath('js'); const config = await configMiddleware({ configPath: configPathJs }); expect(config.upload.project).toContain('js'); - expect(config.persist.outputPath).toContain('tmp'); + expect(config.persist.outputDir).toContain('tmp'); }); it('should throw with invalid configPath', async () => { diff --git a/packages/cli/src/lib/implementation/config-middleware.ts b/packages/cli/src/lib/implementation/config-middleware.ts index d139a7701..f6582044e 100644 --- a/packages/cli/src/lib/implementation/config-middleware.ts +++ b/packages/cli/src/lib/implementation/config-middleware.ts @@ -37,7 +37,7 @@ function readCoreConfigFromCliArgs(args: ArgsCliObj): CommandBase { case 'apiKey': parsedProcessArgs.upload[k] = args[k]; break; - case 'outputPath': + case 'outputDir': case 'format': parsedProcessArgs.persist[k] = args[k]; break; diff --git a/packages/cli/test/config.mock.cjs b/packages/cli/test/config.mock.cjs index 30a5f57a5..c2b25e45d 100644 --- a/packages/cli/test/config.mock.cjs +++ b/packages/cli/test/config.mock.cjs @@ -1,4 +1,4 @@ -const outputPath = 'tmp'; +const outputDir = 'tmp'; module.exports = { upload: { organization: 'code-pushup', @@ -6,7 +6,7 @@ module.exports = { apiKey: 'dummy-api-key', server: 'https://example.com/api', }, - persist: { outputPath }, + persist: { outputDir }, plugins: [ { audits: [ @@ -22,7 +22,7 @@ module.exports = { command: 'node', args: [ '-e', - `require('fs').writeFileSync('${outputPath}/out.json', '${JSON.stringify( + `require('fs').writeFileSync('${outputDir}/out.json', '${JSON.stringify( [ { title: 'dummy-title', @@ -33,7 +33,7 @@ module.exports = { ], )}')`, ], - outputPath: `${outputPath}/out.json`, + outputFile: `${outputDir}/out.json`, }, groups: [], slug: 'command-object-plugin', diff --git a/packages/cli/test/config.mock.js b/packages/cli/test/config.mock.js index 85a51e703..fab7bc39a 100644 --- a/packages/cli/test/config.mock.js +++ b/packages/cli/test/config.mock.js @@ -1,4 +1,4 @@ -const outputPath = 'tmp'; +const outputDir = 'tmp'; export default { upload: { organization: 'code-pushup', @@ -6,7 +6,7 @@ export default { apiKey: 'dummy-api-key', server: 'https://example.com/api', }, - persist: { outputPath }, + persist: { outputDir }, plugins: [ { audits: [ @@ -22,7 +22,7 @@ export default { command: 'node', args: [ '-e', - `require('fs').writeFileSync('${outputPath}/out.json', '${JSON.stringify( + `require('fs').writeFileSync('${outputDir}/out.json', '${JSON.stringify( [ { title: 'dummy-title', @@ -33,7 +33,7 @@ export default { ], )}')`, ], - outputPath: `${outputPath}/out.json`, + outputFile: `${outputDir}/out.json`, }, groups: [], slug: 'command-object-plugin', diff --git a/packages/cli/test/config.mock.mjs b/packages/cli/test/config.mock.mjs index 8528db442..96a72ced9 100644 --- a/packages/cli/test/config.mock.mjs +++ b/packages/cli/test/config.mock.mjs @@ -1,4 +1,4 @@ -const outputPath = 'tmp'; +const outputDir = 'tmp'; export default { upload: { organization: 'code-pushup', @@ -6,7 +6,7 @@ export default { apiKey: 'dummy-api-key', server: 'https://example.com/api', }, - persist: { outputPath }, + persist: { outputDir }, plugins: [ { audits: [ @@ -22,7 +22,7 @@ export default { command: 'node', args: [ '-e', - `require('fs').writeFileSync('${outputPath}/out.json', '${JSON.stringify( + `require('fs').writeFileSync('${outputDir}/out.json', '${JSON.stringify( [ { title: 'dummy-title', @@ -33,7 +33,7 @@ export default { ], )}')`, ], - outputPath: `${outputPath}/out.json`, + outputFile: `${outputDir}/out.json`, }, groups: [], slug: 'command-object-plugin', diff --git a/packages/cli/test/config.mock.ts b/packages/cli/test/config.mock.ts index 1b2f70ecf..1c9e56c85 100644 --- a/packages/cli/test/config.mock.ts +++ b/packages/cli/test/config.mock.ts @@ -1,4 +1,4 @@ -const outputPath = 'tmp'; +const outputDir = 'tmp'; export default { upload: { organization: 'code-pushup', @@ -6,7 +6,7 @@ export default { apiKey: 'dummy-api-key', server: 'https://example.com/api', }, - persist: { outputPath }, + persist: { outputDir }, plugins: [ { audits: [ @@ -22,7 +22,7 @@ export default { command: 'node', args: [ '-e', - `require('fs').writeFileSync('${outputPath}/out.json', '${JSON.stringify( + `require('fs').writeFileSync('${outputDir}/out.json', '${JSON.stringify( [ { title: 'dummy-title', @@ -33,7 +33,7 @@ export default { ], )}')`, ], - outputPath: `${outputPath}/out.json`, + outputFile: `${outputDir}/out.json`, }, groups: [], slug: 'command-object-plugin', diff --git a/packages/core/src/lib/commands/upload.spec.ts b/packages/core/src/lib/commands/upload.spec.ts index 551bcb0d4..d9713542e 100644 --- a/packages/core/src/lib/commands/upload.spec.ts +++ b/packages/core/src/lib/commands/upload.spec.ts @@ -37,8 +37,8 @@ vi.mock('fs/promises', async () => { return memfs.fs.promises; }); -const outputPath = MEMFS_VOLUME; -const reportPath = (path = outputPath, format: 'json' | 'md' = 'json') => +const outputDir = MEMFS_VOLUME; +const reportPath = (path = outputDir, format: 'json' | 'md' = 'json') => join(path, 'report.' + format); describe('uploadToPortal', () => { @@ -59,7 +59,7 @@ describe('uploadToPortal', () => { server: 'https://example.com/api', }), persist: mockPersistConfig({ - outputPath, + outputDir, }), }; const result = (await upload(cfg)) as unknown as { data: ReportFragment }; diff --git a/packages/core/src/lib/commands/upload.ts b/packages/core/src/lib/commands/upload.ts index 84c47f8b0..0c89b9fe2 100644 --- a/packages/core/src/lib/commands/upload.ts +++ b/packages/core/src/lib/commands/upload.ts @@ -20,9 +20,9 @@ export async function upload( } const { apiKey, server, organization, project } = options.upload; - const { outputPath } = options.persist; + const { outputDir } = options.persist; const report = reportSchema.parse( - JSON.parse(readFileSync(join(outputPath, 'report.json')).toString()), + JSON.parse(readFileSync(join(outputDir, 'report.json')).toString()), ); const data = { diff --git a/packages/core/src/lib/implementation/execute-plugin.ts b/packages/core/src/lib/implementation/execute-plugin.ts index 5b3d0fcef..182c5ac14 100644 --- a/packages/core/src/lib/implementation/execute-plugin.ts +++ b/packages/core/src/lib/implementation/execute-plugin.ts @@ -61,7 +61,7 @@ export async function executePlugin( try { const processOutputPath = join( process.cwd(), - pluginConfig.runner.outputPath, + pluginConfig.runner.outputFile, ); // read process output from file system and parse it const auditOutputs = auditOutputsSchema.parse( diff --git a/packages/core/src/lib/implementation/persist.spec.ts b/packages/core/src/lib/implementation/persist.spec.ts index f8c7a9236..6e7c4063a 100644 --- a/packages/core/src/lib/implementation/persist.spec.ts +++ b/packages/core/src/lib/implementation/persist.spec.ts @@ -22,9 +22,9 @@ vi.mock('fs/promises', async () => { return memfs.fs.promises; }); -const outputPath = MEMFS_VOLUME; +const outputDir = MEMFS_VOLUME; const reportPath = (format: 'json' | 'md') => - join(outputPath, 'report.' + format); + join(outputDir, 'report.' + format); const readReport = (format: 'json' | 'md') => { const reportContent = readFileSync(reportPath(format)).toString(); if (format === 'json') { @@ -70,7 +70,7 @@ describe('persistReport', () => { it('should log to console when format is stdout`', async () => { await persistReport(dummyReport, { ...config, - persist: mockPersistConfig({ outputPath, format: ['stdout'] }), + persist: mockPersistConfig({ outputDir, format: ['stdout'] }), }); expect(logs.find(log => log.match(/Code Pushup Report/))).toBeTruthy(); @@ -81,7 +81,7 @@ describe('persistReport', () => { it('should persist json format`', async () => { await persistReport(dummyReport, { ...config, - persist: mockPersistConfig({ outputPath, format: ['json'] }), + persist: mockPersistConfig({ outputDir, format: ['json'] }), }); const jsonReport: Report = readReport('json'); expect(jsonReport.plugins?.[0]?.slug).toBe('plg-0'); @@ -94,7 +94,7 @@ describe('persistReport', () => { it('should persist md format`', async () => { await persistReport(dummyReport, { ...config, - persist: mockPersistConfig({ outputPath, format: ['md'] }), + persist: mockPersistConfig({ outputDir, format: ['md'] }), }); const mdReport = readFileSync(reportPath('md')).toString(); expect(mdReport).toContain('# Code Pushup Report'); @@ -109,7 +109,7 @@ describe('persistReport', () => { await persistReport(dummyReport, { ...config, persist: mockPersistConfig({ - outputPath, + outputDir, format: ['json', 'md', 'stdout'], }), }); @@ -127,7 +127,7 @@ describe('persistReport', () => { it('should persist some formats`', async () => { await persistReport(dummyReport, { ...config, - persist: mockPersistConfig({ outputPath, format: ['md', 'stdout'] }), + persist: mockPersistConfig({ outputDir, format: ['md', 'stdout'] }), }); expect(() => readFileSync(reportPath('json'))).not.toThrow( diff --git a/packages/core/src/lib/implementation/persist.ts b/packages/core/src/lib/implementation/persist.ts index f58f72bb3..df90cf9ae 100644 --- a/packages/core/src/lib/implementation/persist.ts +++ b/packages/core/src/lib/implementation/persist.ts @@ -6,8 +6,8 @@ import { CoreConfig, Report } from '@code-pushup/models'; import { formatBytes, reportToMd, reportToStdout } from '@code-pushup/utils'; export class PersistDirError extends Error { - constructor(outputPath: string) { - super(`outPath: ${outputPath} is no directory.`); + constructor(outputDir: string) { + super(`outPath: ${outputDir} is no directory.`); } } @@ -24,7 +24,7 @@ export async function persistReport( config: CoreConfig, ): Promise { const { persist } = config; - const outputPath = persist.outputPath; + const outputDir = persist.outputDir; let { format } = persist; format = format && format.length !== 0 ? format : ['stdout']; @@ -42,19 +42,19 @@ export async function persistReport( results.push({ format: 'md', content: reportToMd(report) }); } - if (!existsSync(outputPath)) { + if (!existsSync(outputDir)) { try { - mkdirSync(outputPath, { recursive: true }); + mkdirSync(outputDir, { recursive: true }); } catch (e) { console.warn(e); - throw new PersistDirError(outputPath); + throw new PersistDirError(outputDir); } } // write relevant format outputs to file system return Promise.allSettled( results.map(({ format, content }) => { - const reportPath = join(outputPath, `report.${format}`); + const reportPath = join(outputDir, `report.${format}`); return ( writeFile(reportPath, content) diff --git a/packages/models/src/lib/persist-config.spec.ts b/packages/models/src/lib/persist-config.spec.ts index c3d5a3a6f..7398ff112 100644 --- a/packages/models/src/lib/persist-config.spec.ts +++ b/packages/models/src/lib/persist-config.spec.ts @@ -8,8 +8,8 @@ describe('persistConfigSchema', () => { expect(() => persistConfigSchema.parse(cfg)).not.toThrow(); }); - it('should throw if outputPath is invalid', () => { - const cfg = mockPersistConfig({ outputPath: ' ' }); + it('should throw if outputDir is invalid', () => { + const cfg = mockPersistConfig({ outputDir: ' ' }); expect(() => persistConfigSchema.parse(cfg)).toThrow(`path is invalid`); }); diff --git a/packages/models/src/lib/persist-config.ts b/packages/models/src/lib/persist-config.ts index 194f488f9..9d922ec29 100644 --- a/packages/models/src/lib/persist-config.ts +++ b/packages/models/src/lib/persist-config.ts @@ -5,7 +5,7 @@ export const formatSchema = z.enum(['json', 'stdout', 'md']); export type Format = z.infer; export const persistConfigSchema = z.object({ - outputPath: filePathSchema('Artifacts folder'), + outputDir: filePathSchema('Artifacts folder'), format: z.array(formatSchema).default(['stdout']).optional(), }); diff --git a/packages/models/src/lib/plugin-config.ts b/packages/models/src/lib/plugin-config.ts index 7afd0e50d..e537a7c5e 100644 --- a/packages/models/src/lib/plugin-config.ts +++ b/packages/models/src/lib/plugin-config.ts @@ -46,7 +46,7 @@ const runnerConfigSchema = z.object( description: 'Shell command to execute', }), args: z.array(z.string({ description: 'Command arguments' })).optional(), - outputPath: filePathSchema('Output path'), + outputFile: filePathSchema('Output path'), }, { description: 'How to execute runner', diff --git a/packages/models/test/schema.mock.ts b/packages/models/test/schema.mock.ts index 3270ea642..f23fbecc7 100644 --- a/packages/models/test/schema.mock.ts +++ b/packages/models/test/schema.mock.ts @@ -25,15 +25,15 @@ export function mockPluginConfig(opt?: { pluginSlug?: string; auditSlug?: string | string[]; groupSlug?: string | string[]; - outputPath?: string; + outputDir?: string; }): PluginConfig { - const { groupSlug, outputPath } = opt || {}; + const { groupSlug, outputDir } = opt || {}; let { pluginSlug, auditSlug } = opt || {}; pluginSlug = pluginSlug || __pluginSlug__; auditSlug = auditSlug || __auditSlug__; const addGroups = groupSlug !== undefined; const pluginOutputPath = `${ - outputPath || 'tmp' + outputDir || 'tmp' }/${+new Date()}-${__outputFile__}`; const audits = Array.isArray(auditSlug) @@ -58,7 +58,7 @@ export function mockPluginConfig(opt?: { audits.map(({ slug }) => mockAuditOutput({ auditSlug: slug })), )}')`, ], - outputPath: pluginOutputPath, + outputFile: pluginOutputPath, }, slug: pluginSlug, title: 'execute plugin', @@ -81,11 +81,11 @@ export function mockAuditConfig(opt?: { auditSlug?: string }): Audit { } export function mockPersistConfig(opt?: Partial): PersistConfig { - let { outputPath, format } = opt || {}; - outputPath = outputPath || `tmp/${__outputFile__}`; + let { outputDir, format } = opt || {}; + outputDir = outputDir || `tmp/${__outputFile__}`; format = format || []; return { - outputPath, + outputDir, format, } satisfies Required; } @@ -228,16 +228,16 @@ export function mockAuditReport(opt?: { auditSlug: string }): AuditReport { } export function mockCoreConfig(opt?: { - outputPath?: string; + outputDir?: string; categorySlug?: string | string[]; pluginSlug?: string | string[]; auditSlug?: string | string[]; groupSlug?: string | string[]; }): CoreConfig { - const { outputPath, pluginSlug, auditSlug, groupSlug, categorySlug } = + const { outputDir, pluginSlug, auditSlug, groupSlug, categorySlug } = opt || {}; return { - persist: mockPersistConfig({ outputPath }), + persist: mockPersistConfig({ outputDir }), upload: mockUploadConfig(), plugins: Array.isArray(pluginSlug) ? pluginSlug.map(slug => diff --git a/packages/models/test/test-data/config-and-report-dummy.mock.ts b/packages/models/test/test-data/config-and-report-dummy.mock.ts index f6e4fb7ea..e206f32e2 100644 --- a/packages/models/test/test-data/config-and-report-dummy.mock.ts +++ b/packages/models/test/test-data/config-and-report-dummy.mock.ts @@ -15,7 +15,7 @@ const dummyPlugins = [ mockPluginConfig({ pluginSlug: pluginSlug[0], auditSlug: auditSlug0, - outputPath: 'test', + outputDir: 'test', }), /*mockPluginConfig({ pluginSlug: pluginSlug[1], auditSlug: auditSlug1 }), mockPluginConfig({ pluginSlug: pluginSlug[2], auditSlug: auditSlug2 }),*/ @@ -39,8 +39,8 @@ const dummyCategories = [ }),*/, ]; -export const dummyConfig = (outputPath = 'tmp'): CoreConfig => ({ - ...mockCoreConfig({ outputPath }), +export const dummyConfig = (outputDir = 'tmp'): CoreConfig => ({ + ...mockCoreConfig({ outputDir }), plugins: dummyPlugins, categories: dummyCategories, }); diff --git a/packages/models/test/test-data/config-and-report-lighthouse.mock.ts b/packages/models/test/test-data/config-and-report-lighthouse.mock.ts index f886bcfb4..b811cf14e 100644 --- a/packages/models/test/test-data/config-and-report-lighthouse.mock.ts +++ b/packages/models/test/test-data/config-and-report-lighthouse.mock.ts @@ -6,7 +6,7 @@ export const lighthousePlugin: () => PluginConfig = () => runner: { command: 'bun', args: ['--help'], - outputPath: 'tmp/lighthouse-runner-output.json', + outputFile: 'tmp/lighthouse-runner-output.json', }, slug: 'lighthouse', title: 'lighthouse', diff --git a/packages/models/test/test-data/config-and-report-nx-validators.mock.ts b/packages/models/test/test-data/config-and-report-nx-validators.mock.ts index bbd2dc9a6..59fb7b6dc 100644 --- a/packages/models/test/test-data/config-and-report-nx-validators.mock.ts +++ b/packages/models/test/test-data/config-and-report-nx-validators.mock.ts @@ -6,7 +6,7 @@ export const nxValidatorsPlugin: () => PluginConfig = (): PluginConfig => runner: { command: 'bun', args: ['--help'], - outputPath: 'tmp/nx-validators-plugin-runner-output.json', + outputFile: 'tmp/nx-validators-plugin-runner-output.json', }, slug: 'nx-validators', title: 'NxValidatorsPlugin', diff --git a/packages/plugin-eslint/src/lib/__snapshots__/eslint-plugin.spec.ts.snap b/packages/plugin-eslint/src/lib/__snapshots__/eslint-plugin.spec.ts.snap index 5ebdb0dfb..c2e175eec 100644 --- a/packages/plugin-eslint/src/lib/__snapshots__/eslint-plugin.spec.ts.snap +++ b/packages/plugin-eslint/src/lib/__snapshots__/eslint-plugin.spec.ts.snap @@ -447,7 +447,7 @@ Custom options: "packages/utils/**/*.json", ], "command": "node", - "outputPath": "node_modules/.code-pushup/eslint/runner-output.json", + "outputFile": "node_modules/.code-pushup/eslint/runner-output.json", }, "slug": "eslint", "title": "ESLint", @@ -753,7 +753,7 @@ exports[`eslintPlugin > should initialize ESLint plugin for React application 1` "src/**/*.jsx", ], "command": "node", - "outputPath": "node_modules/.code-pushup/eslint/runner-output.json", + "outputFile": "node_modules/.code-pushup/eslint/runner-output.json", }, "slug": "eslint", "title": "ESLint", diff --git a/packages/plugin-eslint/src/lib/runner/index.ts b/packages/plugin-eslint/src/lib/runner/index.ts index e891dd076..3d52b1f0d 100644 --- a/packages/plugin-eslint/src/lib/runner/index.ts +++ b/packages/plugin-eslint/src/lib/runner/index.ts @@ -53,6 +53,6 @@ export function createRunnerConfig( eslintrc, ...toArray(patterns), ], - outputPath: RUNNER_OUTPUT_PATH, + outputFile: RUNNER_OUTPUT_PATH, }; } diff --git a/packages/plugin-lighthouse/src/lib/lighthouse-plugin.ts b/packages/plugin-lighthouse/src/lib/lighthouse-plugin.ts index 1cfea1074..1ab5c4239 100644 --- a/packages/plugin-lighthouse/src/lib/lighthouse-plugin.ts +++ b/packages/plugin-lighthouse/src/lib/lighthouse-plugin.ts @@ -28,7 +28,7 @@ export function lighthousePlugin(_: LighthousePluginConfig): PluginConfig { }, ] satisfies AuditOutputs)}')`, ], - outputPath: 'tmp/out.json', + outputFile: 'tmp/out.json', }, slug: 'lighthouse', title: 'ChromeDevTools Lighthouse', diff --git a/packages/utils/src/lib/execute-process.spec.ts b/packages/utils/src/lib/execute-process.spec.ts index 6faa9a9ce..6c645f030 100644 --- a/packages/utils/src/lib/execute-process.spec.ts +++ b/packages/utils/src/lib/execute-process.spec.ts @@ -8,7 +8,7 @@ import { const outFolder = ''; const outName = 'tmp/out-async-runner.json'; -const outputPath = join(outFolder, outName); +const outputFile = join(outFolder, outName); describe('executeProcess', () => { it('should work with node command `node -v`', async () => { @@ -28,7 +28,7 @@ describe('executeProcess', () => { it('should work with script `node custom-script.js`', async () => { const cfg = mockProcessConfig( - getAsyncProcessRunnerConfig({ interval: 10, outputPath }), + getAsyncProcessRunnerConfig({ interval: 10, outputFile }), ); const { observer } = cfg; const errorSpy = vi.fn(); diff --git a/packages/utils/src/lib/mock/execute-process.mock.mjs b/packages/utils/src/lib/mock/execute-process.mock.mjs index 61afc587c..ad7fac676 100644 --- a/packages/utils/src/lib/mock/execute-process.mock.mjs +++ b/packages/utils/src/lib/mock/execute-process.mock.mjs @@ -3,7 +3,7 @@ import { writeFileSync } from 'fs'; const interval = parseInt(process.argv[2] || 100); let runs = parseInt(process.argv[3] || 4); let throwError = process.argv[4] === '1'; -let outputPath = process.argv[5] || './tmp/out-async-runner.json'; +let outputFile = process.argv[5] || './tmp/out-async-runner.json'; /** * Custom runner implementation that simulates asynchronous situations. @@ -17,7 +17,7 @@ let outputPath = process.argv[5] || './tmp/out-async-runner.json'; **/ (async () => { console.log( - `process:start with interval: ${interval}, runs: ${runs}, throwError: ${throwError}, outputPath: ${outputPath}`, + `process:start with interval: ${interval}, runs: ${runs}, throwError: ${throwError}, outputFile: ${outputFile}`, ); await new Promise(resolve => { const id = setInterval(() => { @@ -36,5 +36,5 @@ let outputPath = process.argv[5] || './tmp/out-async-runner.json'; }); console.log('process:complete'); - writeFileSync(outputPath, JSON.stringify({ audits: ['dummy-result'] })); + writeFileSync(outputFile, JSON.stringify({ audits: ['dummy-result'] })); })(); diff --git a/packages/utils/src/lib/mock/process-helper.mock.ts b/packages/utils/src/lib/mock/process-helper.mock.ts index 983c8a1ca..0dfedbd1c 100644 --- a/packages/utils/src/lib/mock/process-helper.mock.ts +++ b/packages/utils/src/lib/mock/process-helper.mock.ts @@ -14,18 +14,18 @@ export function getAsyncProcessRunnerConfig( throwError?: boolean; interval?: number; runs?: number; - outputPath?: string; + outputFile?: string; } = { throwError: false }, ) { - const outputPath = cfg?.outputPath || './tmp/out-async-runner.json'; + const outputFile = cfg?.outputFile || './tmp/out-async-runner.json'; const args = [ asyncProcessPath, cfg?.interval ? cfg.interval + '' : '10', cfg?.runs ? cfg.runs + '' : '4', cfg?.throwError ? '1' : '0', - outputPath, + outputFile, ]; - return { command: 'node', args, outputPath }; + return { command: 'node', args, outputFile }; } /** @@ -36,20 +36,20 @@ export function getAsyncProcessRunnerConfig( export function getSyncProcessRunnerConfig( cfg: Partial & { throwError?: boolean; - outputPath?: string; + outputFile?: string; } = { throwError: false }, ) { return { command: 'node', args: [ '-e', - `require('fs').writeFileSync('${cfg.outputPath}', '${JSON.stringify({ + `require('fs').writeFileSync('${cfg.outputFile}', '${JSON.stringify({ audits: cfg.throwError ? ({ throwError: cfg.throwError } as unknown) : [], })}')`, ], - outputPath: cfg.outputPath, + outputFile: cfg.outputFile, }; } @@ -57,7 +57,7 @@ export function mockProcessConfig( processConfig: Partial, ): ProcessConfig { return { - ...{ command: 'dummy-string', args: [], outputPath: 'tmp/out.json' }, + ...{ command: 'dummy-string', args: [], outputFile: 'tmp/out.json' }, ...processConfig, observer: spyObserver(), }; diff --git a/packages/utils/src/lib/mock/schema-helper.mock.ts b/packages/utils/src/lib/mock/schema-helper.mock.ts index 38c93bdbe..883e93662 100644 --- a/packages/utils/src/lib/mock/schema-helper.mock.ts +++ b/packages/utils/src/lib/mock/schema-helper.mock.ts @@ -13,7 +13,8 @@ const __pluginSlug__ = 'mock-plugin-slug'; const __auditSlug__ = 'mock-audit-slug'; const __groupSlug__ = 'mock-group-slug'; const __categorySlug__ = 'mock-category-slug'; -const __outputPath__ = 'tmp/out-execute-plugin.json'; +const __outputDir__ = 'tmp'; +const __outputFile__ = `${__outputDir__}/out-execute-plugin.json`; const randWeight = () => Math.floor(Math.random() * 10); const randDuration = () => Math.floor(Math.random() * 1000); @@ -27,7 +28,7 @@ export function mockPluginConfig(opt?: { pluginSlug = pluginSlug || __pluginSlug__; auditSlug = auditSlug || __auditSlug__; const addGroups = groupSlug !== undefined; - const outputPath = __outputPath__; + const outputFile = __outputFile__; const audits = Array.isArray(auditSlug) ? auditSlug.map(slug => mockAuditConfig({ auditSlug: slug })) @@ -47,14 +48,14 @@ export function mockPluginConfig(opt?: { command: 'node', args: [ '-e', - `require('fs').writeFileSync('${outputPath}', '${JSON.stringify( + `require('fs').writeFileSync('${outputFile}', '${JSON.stringify( audits.map( ({ slug }) => mockAuditReport({ auditSlug: slug }) satisfies AuditReport, ), )}')`, ], - outputPath: outputPath, + outputFile, }, slug: pluginSlug, title: 'execute plugin ' + pluginSlug, @@ -78,11 +79,11 @@ export function mockAuditConfig(opt?: { } export function mockPersistConfig(opt?: Partial): PersistConfig { - let { outputPath, format } = opt || {}; - outputPath = outputPath || __outputPath__; + let { outputDir, format } = opt || {}; + outputDir = outputDir || __outputDir__; format = format || []; return { - outputPath, + outputDir, format, }; } @@ -198,16 +199,16 @@ export function mockAuditReport(opt?: { auditSlug: string }): AuditReport { } export function mockConfig(opt?: { - outputPath?: string; + outputDir?: string; categorySlug?: string | string[]; pluginSlug?: string | string[]; auditSlug?: string | string[]; groupSlug?: string | string[]; }): CoreConfig { - const { outputPath, pluginSlug, auditSlug, groupSlug, categorySlug } = + const { outputDir, pluginSlug, auditSlug, groupSlug, categorySlug } = opt || {}; return { - persist: mockPersistConfig({ outputPath }), + persist: mockPersistConfig({ outputDir }), plugins: Array.isArray(pluginSlug) ? pluginSlug.map(slug => mockPluginConfig({ pluginSlug: slug, auditSlug, groupSlug }),