Skip to content

Commit

Permalink
chore(core): treat audit output as unknown before schema parse
Browse files Browse the repository at this point in the history
  • Loading branch information
Tlacenka committed Jan 15, 2024
1 parent fb9f5cf commit 3bac97b
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 15 deletions.
13 changes: 3 additions & 10 deletions packages/core/src/lib/implementation/runner.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,11 @@
import { join } from 'node:path';
import {
AuditOutputs,
OnProgress,
RunnerConfig,
RunnerFunction,
} from '@code-pushup/models';
import { OnProgress, RunnerConfig, RunnerFunction } from '@code-pushup/models';
import { calcDuration, executeProcess, readJsonFile } from '@code-pushup/utils';

export type RunnerResult = {
date: string;
duration: number;
audits: AuditOutputs;
audits: unknown;
};

export async function executeRunnerConfig(
Expand All @@ -27,9 +22,7 @@ export async function executeRunnerConfig(
});

// read process output from file system and parse it
const outputs = await readJsonFile<AuditOutputs>(
join(process.cwd(), outputFile),
);
const outputs = await readJsonFile(join(process.cwd(), outputFile));

// transform unknownAuditOutputs to auditOutputs
const audits = outputTransform ? await outputTransform(outputs) : outputs;
Expand Down
12 changes: 7 additions & 5 deletions packages/core/src/lib/implementation/runner.unit.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ describe('executeRunnerConfig', () => {
const runnerResult = await executeRunnerConfig(MINIMAL_RUNNER_CONFIG_MOCK);

// data sanity
expect(runnerResult.audits[0]?.slug).toBe('node-version');
expect((runnerResult.audits as AuditOutputs)[0]?.slug).toBe('node-version');
expect(runnerResult.date).toMatch(ISO_STRING_REGEXP);
expect(runnerResult.duration).toBeGreaterThanOrEqual(0);

Expand All @@ -59,9 +59,10 @@ describe('executeRunnerConfig', () => {
},
]),
});
const auditOutputs = runnerResult.audits as AuditOutputs;

expect(runnerResult.audits[0]?.slug).toBe('node-version');
expect(runnerResult.audits[0]?.displayValue).toBe('16.0.0');
expect(auditOutputs[0]?.slug).toBe('node-version');
expect(auditOutputs[0]?.displayValue).toBe('16.0.0');
});

it('should throw if outputTransform throws', async () => {
Expand All @@ -82,9 +83,10 @@ describe('executeRunnerFunction', () => {
const runnerResult: RunnerResult = await executeRunnerFunction(
MINIMAL_RUNNER_FUNCTION_MOCK,
);
const auditOutputs = runnerResult.audits as AuditOutputs;

expect(runnerResult.audits[0]?.slug).toBe('node-version');
expect(runnerResult.audits[0]?.details?.issues).toEqual([
expect(auditOutputs[0]?.slug).toBe('node-version');
expect(auditOutputs[0]?.details?.issues).toEqual([
expect.objectContaining({
message: 'The required Node version to run Code PushUp CLI is 18.',
}),
Expand Down

0 comments on commit 3bac97b

Please sign in to comment.