fix(tapbundle): treat tests that call tools.allowFailure() as passing and update tests to use tools parameter
This commit is contained in:
@@ -1,5 +1,12 @@
|
||||
# Changelog
|
||||
|
||||
## 2026-01-25 - 3.1.8 - fix(tapbundle)
|
||||
treat tests that call tools.allowFailure() as passing and update tests to use tools parameter
|
||||
|
||||
- Set testResult.ok to this.failureAllowed so allowed failures are considered passing in the tap test runner implementation (ts_tapbundle/tapbundle.classes.taptest.ts).
|
||||
- Updated multiple tests to accept the tools parameter and call tools.allowFailure() where failures are intended (test/tapbundle/test.performance-metrics.ts, test/tstest/test.fail.ts, test/tstest/test.failing-with-logs.ts).
|
||||
- Prevents intentionally-failing tests from skewing timing/metric calculations and preserves console logs for allowed failures.
|
||||
|
||||
## 2026-01-25 - 3.1.7 - fix(tap-parser)
|
||||
append newline to WebSocket tap log messages to ensure proper line-by-line processing
|
||||
|
||||
|
||||
@@ -47,6 +47,7 @@ tap.test('metric test fast 3 - minimal work', async () => {
|
||||
|
||||
// Test to verify that failed tests still contribute to timing metrics
|
||||
tap.test('metric test that fails - 60ms before failure', async (tools) => {
|
||||
tools.allowFailure();
|
||||
await tools.delayFor(60);
|
||||
expect(true).toBeFalse(); // This will fail
|
||||
});
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { expect, tap } from '../../ts_tapbundle/index.js';
|
||||
|
||||
tap.test('This test should fail', async () => {
|
||||
tap.test('This test should fail', async (tools) => {
|
||||
tools.allowFailure();
|
||||
console.log('This test will fail on purpose');
|
||||
expect(true).toBeFalse();
|
||||
});
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
import { expect, tap } from '../../ts_tapbundle/index.js';
|
||||
|
||||
tap.test('Test that will fail with console logs', async () => {
|
||||
tap.test('Test that will fail with console logs', async (tools) => {
|
||||
tools.allowFailure();
|
||||
console.log('Starting the test...');
|
||||
console.log('Doing some setup work');
|
||||
console.log('About to check assertion');
|
||||
|
||||
|
||||
const value = 42;
|
||||
console.log(`The value is: ${value}`);
|
||||
|
||||
|
||||
// This will fail
|
||||
expect(value).toEqual(100);
|
||||
|
||||
|
||||
console.log('This log will not be reached');
|
||||
});
|
||||
|
||||
|
||||
@@ -3,6 +3,6 @@
|
||||
*/
|
||||
export const commitinfo = {
|
||||
name: '@git.zone/tstest',
|
||||
version: '3.1.7',
|
||||
version: '3.1.8',
|
||||
description: 'a test utility to run tests that match test/**/*.ts'
|
||||
}
|
||||
|
||||
@@ -261,7 +261,7 @@ export class TapTest<T = unknown> {
|
||||
|
||||
// Final failure
|
||||
const testResult = {
|
||||
ok: false,
|
||||
ok: this.failureAllowed, // Pass if failure is allowed
|
||||
testNumber,
|
||||
description: this.description,
|
||||
metadata: {
|
||||
|
||||
Reference in New Issue
Block a user