(overrides: Partial<TaskModalActionStateInput> = {})
| 49 | } |
| 50 | |
| 51 | function createHarness(overrides: Partial<TaskModalActionStateInput> = {}): { |
| 52 | context: ReturnType<typeof createTaskModalActionMenuContext>; |
| 53 | getState: () => TaskModalActionMenuState; |
| 54 | onChange: jest.Mock; |
| 55 | } { |
| 56 | let state = createTaskModalActionMenuState(createStateInput(overrides)); |
| 57 | const onChange = jest.fn(); |
| 58 | |
| 59 | const context = createTaskModalActionMenuContext({ |
| 60 | app: {} as TaskModalActionMenuContextOptions["app"], |
| 61 | plugin: { settings: {} } as TaskNotesPlugin, |
| 62 | translate: (key, params) => `${key}:${params ? JSON.stringify(params) : ""}`, |
| 63 | getState: () => state, |
| 64 | setDueDate: (value) => { |
| 65 | state = { ...state, dueDate: value }; |
| 66 | }, |
| 67 | setScheduledDate: (value) => { |
| 68 | state = { ...state, scheduledDate: value }; |
| 69 | }, |
| 70 | setStatus: (value) => { |
| 71 | state = { ...state, status: value }; |
| 72 | }, |
| 73 | setPriority: (value) => { |
| 74 | state = { ...state, priority: value }; |
| 75 | }, |
| 76 | setRecurrenceRule: (value) => { |
| 77 | state = { ...state, recurrenceRule: value }; |
| 78 | }, |
| 79 | setRecurrenceAnchor: (value) => { |
| 80 | state = { ...state, recurrenceAnchor: value }; |
| 81 | }, |
| 82 | setReminders: (reminders) => { |
| 83 | state = { ...state, reminders }; |
| 84 | }, |
| 85 | onChange, |
| 86 | }); |
| 87 | |
| 88 | return { context, getState: () => state, onChange }; |
| 89 | } |
| 90 | |
| 91 | describe("taskModalActionState", () => { |
| 92 | it("builds menu state snapshots and defaults missing reminders to an empty list", () => { |
no test coverage detected