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');
|
|
});
|
|
});
|