import { expect } from '@jest/globals'; import { Container } from '@servicetitan/react-ioc'; import { initTestContainer } from '@servicetitan/titan-chat-ui-common'; import { ChatInputStore } from '../chat-input.store'; const initContainer = initTestContainer(ChatInputStore, () => {}); describe('[ChatInputStore]', () => { let container: Container; let store: ChatInputStore; beforeEach(() => { container = initContainer(); store = container.get(ChatInputStore); }); test('should have proper form state', async () => { expect(store.formState.$.message).toBeDefined(); expect(store.formState.$.message.value).toBe(''); const validateResult = await store.formState.validate(); expect(validateResult.hasError).toBe(false); expect(store.isEmpty).toBe(true); store.formState.$.message.onChange('test'); expect(store.formState.$.message.value).toBe('test'); const validateResult2 = await store.formState.validate(); expect(validateResult2.hasError).toBe(false); expect(store.isEmpty).toBe(false); store.formState.$.message.onChange('a'.repeat(6000)); expect(store.formState.$.message.value).toBe('a'.repeat(6000)); const validateResult3 = await store.formState.validate(); expect(validateResult3.hasError).toBe(false); expect(store.isEmpty).toBe(false); store.formState.$.message.onChange('a'.repeat(6001)); expect(store.formState.$.message.value).toBe('a'.repeat(6001)); const validateResult4 = await store.formState.validate(); expect(validateResult4.hasError).toBe(true); expect(store.formState.$.message.error).toBe('Message character max is 6000.'); expect(store.isEmpty).toBe(false); }); });