MCPcopy
hub / github.com/callumalpass/tasknotes / createHarness

Function createHarness

tests/unit/modals/taskModalActionState.test.ts:51–89  ·  view source on GitHub ↗
(overrides: Partial<TaskModalActionStateInput> = {})

Source from the content-addressed store, hash-verified

49}
50
51function 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
91describe("taskModalActionState", () => {
92 it("builds menu state snapshots and defaults missing reminders to an empty list", () => {

Callers 1

Calls 3

createStateInputFunction · 0.85

Tested by

no test coverage detected