Files
LangBot/web/tests/unit/event-pattern-coverage.test.mjs
T

37 lines
1.0 KiB
JavaScript

import assert from 'node:assert/strict';
import fs from 'node:fs';
import test from 'node:test';
import ts from 'typescript';
const source = fs.readFileSync(
new URL(
'../../src/app/home/components/event-patterns/event-pattern-groups.ts',
import.meta.url,
),
'utf8',
);
const exports = {};
new Function(
'exports',
ts.transpileModule(source, {
compilerOptions: { module: ts.ModuleKind.CommonJS },
}).outputText,
)(exports);
for (const [supported, required, covered] of [
['message.received', 'message.received', true],
['message.received', 'group.member_joined', false],
['message.received', 'message.*', false],
['message.received', '*', false],
['group.*', 'group.member_joined', true],
['group.*', 'group.*', true],
['group.*', 'groupish.member_joined', false],
['group.*', '*', false],
['*', 'group.*', true],
['*', '*', true],
]) {
test(`${supported} ${covered ? 'covers' : 'does not cover'} ${required}`, () => {
assert.equal(exports.eventPatternCovers(supported, required), covered);
});
}