Skip to content

Commit f7b2aa9

Browse files
authored
Merge pull request #89 from bryantaustin13/AddSkipMessage
Add skip message to results output file and console
2 parents 950606f + e71b303 commit f7b2aa9

5 files changed

Lines changed: 33 additions & 9 deletions

File tree

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
"dev": "tsc --watch",
1414
"test": "vitest run test/",
1515
"test:cql": "node --import tsx src/bin/cql-tests.ts run-tests conf/localhost.json ./results",
16+
"cql-run-tests:dev": "tsx src/bin/cql-tests.ts run-tests conf/development.json ./results",
17+
"cql-run-tests:local": "tsx src/bin/cql-tests.ts run-tests conf/localhost.json ./local_results",
1618
"build-libs": "npm run build && node dist/bin/cql-tests.js build-cql conf/localhost.json ./cql",
1719
"unit-tests": "vitest run test/",
1820
"clean": "rm -rf dist",
@@ -50,4 +52,4 @@
5052
"typescript": "^6.0.2",
5153
"vitest": "^4.1.2"
5254
}
53-
}
55+
}

src/models/test-types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ export interface CapabilityKV {
6363
// Internal Result type used during test execution (allows 'undefined' for invalid)
6464
export interface InternalTestResult {
6565
testStatus?: 'pass' | 'fail' | 'skip' | 'error';
66+
skipMessage?: string;
6667
responseStatus?: number;
6768
actual?: any;
6869
expected?: string;
@@ -85,6 +86,7 @@ export interface InternalTestResult {
8586
// Schema-compliant TestResult type (strictly matches cql-test-results.schema.json)
8687
export interface TestResult {
8788
testStatus?: 'pass' | 'fail' | 'skip' | 'error';
89+
skipMessage?: string;
8890
responseStatus?: number;
8991
actual?: string;
9092
expected?: string;

src/services/test-runner.ts

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,12 @@ export class TestRunner {
6464
for (const testFile of emptyResults) {
6565
for (const result of testFile) {
6666
if (this.shouldSkipVersionTest(cqlEngine, result)) {
67-
//add to skipMap
6867
const skipReason =
69-
'test version ' +
70-
result.testVersion +
71-
' not applicable to engine version ' +
72-
cqlEngine.cqlVersion;
68+
result.testVersionTo &&
69+
this.compareVersions(cqlEngine.cqlVersion, result.testVersionTo) > 0
70+
? `test versionTo ${result.testVersionTo} not applicable to engine version ${cqlEngine.cqlVersion}`
71+
: `test version ${result.testVersion} not applicable to engine version ${cqlEngine.cqlVersion}`;
72+
7373
this.addToSkipList(
7474
skipMap,
7575
result.testsName,
@@ -117,19 +117,36 @@ export class TestRunner {
117117
const key = `${result.testsName}-${result.groupName}-${result.testName}`;
118118

119119
if (result.testStatus === 'skip') {
120-
result.SkipMessage = 'Skipped by cql-tests-runner';
120+
if (!result.skipMessage?.trim()) {
121+
result.skipMessage = 'Skipped by cql-tests-runner';
122+
}
123+
console.log(
124+
'Test %s:%s:%s status: %s skipMessage: %s',
125+
result.testsName,
126+
result.groupName,
127+
result.testName,
128+
result.testStatus,
129+
result.skipMessage
130+
);
121131
return result;
122132
} else if (onlySet.size > 0 && !onlySet.has(key)) {
123133
result.SkipMessage = 'Skipped by OnlyList filter';
124134
result.testStatus = 'skip';
125135
return result;
126136
} else if (skipMap.has(key)) {
127137
const reason = skipMap.get(key) || '';
128-
result.SkipMessage = `Skipped by config: ${reason}`;
138+
result.skipMessage = `Skipped by config: ${reason}`;
129139
result.testStatus = 'skip';
140+
console.log(
141+
'Test %s:%s:%s status: %s skipMessage: %s',
142+
result.testsName,
143+
result.groupName,
144+
result.testName,
145+
result.testStatus,
146+
result.skipMessage
147+
);
130148
return result;
131149
}
132-
133150
const data = generateParametersResource(result, config.FhirServer.CqlOperation);
134151

135152
try {

src/shared/results-shared.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { Parameters } from 'fhir/r4';
33

44
export class Result implements InternalTestResult {
55
testStatus!: 'pass' | 'fail' | 'skip' | 'error';
6+
skipMessage?: string;
67
responseStatus?: number;
78
actual?: any;
89
expected?: string;
@@ -49,6 +50,7 @@ export class Result implements InternalTestResult {
4950
}
5051
} else {
5152
this.testStatus = 'skip';
53+
this.skipMessage = 'No output specified';
5254
}
5355

5456
this.capability = Array.isArray(test.capability)

src/test-results/cql-test-results.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ export class CQLTestResults {
102102
expression: result.expression,
103103
// Optional fields (only include if present)
104104
...(result.testStatus && { testStatus: result.testStatus }),
105+
...(result.skipMessage?.trim() && { skipMessage: result.skipMessage.trim() }),
105106
...(result.responseStatus !== undefined && {
106107
responseStatus: result.responseStatus,
107108
}),

0 commit comments

Comments
 (0)