Dev Build / cleanup (push) Waiting to run
Dev Build / typecheck (push) Waiting to run
Publish MCP to npm / Build, test, and publish MCP (push) Waiting to run
Publish SDK to npm / Build, test, and publish SDK (push) Waiting to run
Sync action catalog to docs / sync (push) Waiting to run
Publish UI to npm / Build and publish UI (push) Waiting to run
Build and Release / preflight (push) Waiting to run
23 lines
910 B
TypeScript
23 lines
910 B
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import { SNOWLUMA_ACTIONS, isSnowLumaAction } from '../../sdk/src/actions.js';
|
|
import { ACTION_REGISTRY } from '../src/actions';
|
|
|
|
describe('SDK action catalog compatibility', () => {
|
|
it('covers every executable name, including aliases and raw actions, exactly once', () => {
|
|
const registered = ACTION_REGISTRY.executableNames.map(({ name }) => name);
|
|
expect([...SNOWLUMA_ACTIONS].sort()).toEqual(registered.sort());
|
|
expect(new Set(SNOWLUMA_ACTIONS).size).toBe(SNOWLUMA_ACTIONS.length);
|
|
|
|
for (const name of registered) {
|
|
expect(isSnowLumaAction(name), name).toBe(true);
|
|
}
|
|
});
|
|
|
|
it.each(['', 'consumer_extension', 'SEND_GROUP_MSG', 'send_group_msg '])(
|
|
'does not recognize unregistered name %j',
|
|
(name) => {
|
|
expect(isSnowLumaAction(name)).toBe(false);
|
|
},
|
|
);
|
|
});
|