|
| 1 | +import { deepStrictEqual, ok } from 'node:assert' |
| 2 | +import { test } from 'node:test' |
| 3 | +import { isMainThread } from 'node:worker_threads' |
| 4 | +import { cronometro } from '../src/index.js' |
| 5 | + |
| 6 | +if (isMainThread) { |
| 7 | + test('Errors are properly handled when no tests are exported in the worker threads', async () => { |
| 8 | + const results = await cronometro( |
| 9 | + { |
| 10 | + single() {}, |
| 11 | + multiple() {} |
| 12 | + }, |
| 13 | + { iterations: 10, print: false } |
| 14 | + ) |
| 15 | + |
| 16 | + ok(!results.single.success) |
| 17 | + ok(results.single.error instanceof Error) |
| 18 | + deepStrictEqual(results.single.error.message, 'No test code exported from the worker thread') |
| 19 | + deepStrictEqual(results.single.size, 0) |
| 20 | + deepStrictEqual(results.single.min, 0) |
| 21 | + deepStrictEqual(results.single.max, 0) |
| 22 | + deepStrictEqual(results.single.mean, 0) |
| 23 | + deepStrictEqual(results.single.stddev, 0) |
| 24 | + deepStrictEqual(results.single.standardError, 0) |
| 25 | + deepStrictEqual(results.single.percentiles, {}) |
| 26 | + |
| 27 | + ok(!results.multiple.success) |
| 28 | + ok(results.multiple.error instanceof Error) |
| 29 | + deepStrictEqual(results.multiple.error.message, 'No test code exported from the worker thread') |
| 30 | + deepStrictEqual(results.multiple.size, 0) |
| 31 | + deepStrictEqual(results.multiple.min, 0) |
| 32 | + deepStrictEqual(results.multiple.max, 0) |
| 33 | + deepStrictEqual(results.multiple.mean, 0) |
| 34 | + deepStrictEqual(results.multiple.stddev, 0) |
| 35 | + deepStrictEqual(results.multiple.standardError, 0) |
| 36 | + deepStrictEqual(results.multiple.percentiles, {}) |
| 37 | + }) |
| 38 | +} |
0 commit comments