import { expect, test, describe } from 'vitest'; import { actionCreator, actionCreatorMulti, actionCreatorSingle } from '../src'; import { skipDevMessages } from '../src/dev'; import { MODE_DEV, setGlobalMode } from '../src/mode'; setGlobalMode(MODE_DEV); skipDevMessages(true); describe('create-action', () => { test('should create action single', () => { const TestEvent = actionCreator('TestEvent'); expect(TestEvent).toBeDefined(); const actionInstance = TestEvent('test'); expect(actionInstance.creator === TestEvent).toBe(true); expect(actionInstance.payload).toBe('test'); expect(actionInstance.type).toBe('TestEvent'); }); test('should create action single #2', () => { const TestEvent = actionCreatorSingle('TestEvent'); expect(TestEvent).toBeDefined(); const actionInstance = TestEvent('test'); expect(actionInstance.creator === TestEvent).toBe(true); expect(actionInstance.payload).toBe('test'); expect(actionInstance.type).toBe('TestEvent'); }); test('should create action multi', () => { const TestEvent = actionCreator('TestEvent', 'multi'); expect(TestEvent).toBeDefined(); const actionInstance = TestEvent('test'); expect(actionInstance.creator === TestEvent).toBe(true); expect(actionInstance.payload).toBe('test'); expect(actionInstance.type).toBe('TestEvent'); }); test('should create action multi #2', () => { const TestEvent = actionCreatorMulti('TestEvent'); expect(TestEvent).toBeDefined(); const actionInstance = TestEvent('test'); expect(actionInstance.creator === TestEvent).toBe(true); expect(actionInstance.payload).toBe('test'); expect(actionInstance.type).toBe('TestEvent'); }); test('should create action with array value', () => { const TestEvent = actionCreator('TestEvent'); expect(TestEvent).toBeDefined(); const actionInstance = TestEvent(['test']); expect(actionInstance.creator === TestEvent).toBe(true); expect(actionInstance.payload).toEqual(['test']); expect(actionInstance.type).toBe('TestEvent'); }); });