Files
ToolsPCastApi-TS/test/unit/lang/assertUnreachable.test.ts

32 lines
909 B
TypeScript

import {describe, expect, it} from 'bun:test';
import assertUnreachable from '../../../src/lang/assertUnreachable';
describe('assertUnreachable', () => {
describe('when called with an unexpected value', () => {
it('should throw an error containing the value', () => {
const unreachableValue = 'unexpected' as never;
expect(() => assertUnreachable(unreachableValue)).toThrow('Unreachable code: unexpected');
});
it('should handle numeric values in the error message', () => {
const numericValue = 42 as never;
expect(() => assertUnreachable(numericValue)).toThrow('Unreachable code: 42');
});
it('should always throw and never return', () => {
const value = 'test' as never;
let didThrow = false;
try {
assertUnreachable(value);
} catch {
didThrow = true;
}
expect(didThrow).toBe(true);
});
});
});