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
33 lines
1.6 KiB
TypeScript
33 lines
1.6 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import { messageBuilderSegmentKinds, newSeg } from '../src/components/debug/message-builder';
|
|
import { messageBuilderModeForAction } from '../src/components/debug/param-field';
|
|
|
|
describe('action message builder capabilities', () => {
|
|
it('does not offer forward nodes in ordinary message parameters', () => {
|
|
expect(messageBuilderSegmentKinds('message', [])).not.toContain('node');
|
|
});
|
|
|
|
it('only offers forward nodes at the root of forward actions', () => {
|
|
expect(messageBuilderSegmentKinds('forward', [])).toEqual(['node']);
|
|
});
|
|
|
|
it('locks nested forward content to nodes once a nested node is present', () => {
|
|
expect(messageBuilderSegmentKinds('node-content', [newSeg('node')])).toEqual(['node']);
|
|
});
|
|
|
|
it('keeps ordinary nested content free of nodes and window shakes', () => {
|
|
const kinds = messageBuilderSegmentKinds('node-content', [newSeg('text')]);
|
|
expect(kinds).not.toContain('node');
|
|
expect(kinds).not.toContain('poke');
|
|
});
|
|
|
|
it('selects the forward-only builder for every forward action', () => {
|
|
expect(messageBuilderModeForAction('send_forward_msg')).toBe('forward');
|
|
expect(messageBuilderModeForAction('send_group_forward_msg')).toBe('forward');
|
|
expect(messageBuilderModeForAction('send_private_forward_msg')).toBe('forward');
|
|
expect(messageBuilderModeForAction('upload_forward_msg')).toBe('forward');
|
|
expect(messageBuilderModeForAction('upload_foward_msg')).toBe('forward');
|
|
expect(messageBuilderModeForAction('send_msg')).toBe('message');
|
|
});
|
|
});
|