mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-09-16 14:57:15 +00:00
37 lines
1.0 KiB
JavaScript
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);
|
|
});
|
|
}
|