From 4f27efa89541456cfbbad287483c9c84737cb4b8 Mon Sep 17 00:00:00 2001 From: multipleof4 Date: Thu, 13 Nov 2025 16:45:36 -0800 Subject: [PATCH] Refactor: Export test case inputs for debug page --- tests/7_scheduler/test.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/tests/7_scheduler/test.js b/tests/7_scheduler/test.js index 85b05d7..74f793c 100644 --- a/tests/7_scheduler/test.js +++ b/tests/7_scheduler/test.js @@ -7,10 +7,7 @@ export default { // - You MUST use a dynamic import() to load one or more libraries from a CDN for date/time manipulation. // - The function should find all non-overlapping time slots of 'durationMinutes' where both parties are free, within their working hours, and within the search range. // - Return an array of available slots, each as an object: { start: 'ISODateString', end: 'ISODateString' }`, - runTest: async (findAvailableSlots) => { - const assert = { - deepStrictEqual: (a, e, m) => { if (JSON.stringify(a) !== JSON.stringify(e)) throw new Error(m || `FAIL: ${JSON.stringify(a)} !== ${JSON.stringify(e)}`) }, - }; + getTestCases: () => { const today = new Date().toISOString().split('T')[0]; const calendar1 = [ { start: `${today}T09:00:00.000Z`, end: `${today}T10:30:00.000Z` }, @@ -25,15 +22,21 @@ export default { searchRange: { start: `${today}T00:00:00.000Z`, end: `${today}T23:59:59.999Z` }, workHours: { start: '09:00', end: '17:00' } }; + return [calendar1, calendar2, constraints]; + }, + runTest: async (findAvailableSlots) => { + const assert = { + deepStrictEqual: (a, e, m) => { if (JSON.stringify(a) !== JSON.stringify(e)) throw new Error(m || `FAIL: ${JSON.stringify(a)} !== ${JSON.stringify(e)}`) }, + }; + const [calendar1, calendar2, constraints] = globalThis.getTestCases ? globalThis.getTestCases() : this.getTestCases(); + const today = new Date().toISOString().split('T')[0]; const expected = [ { start: `${today}T11:00:00.000Z`, end: `${today}T12:00:00.000Z` }, { start: `${today}T13:00:00.000Z`, end: `${today}T14:00:00.000Z` }, { start: `${today}T14:30:00.000Z`, end: `${today}T15:30:00.000Z` }, { start: `${today}T15:30:00.000Z`, end: `${today}T16:30:00.000Z` }, ]; - const result = await findAvailableSlots(calendar1, calendar2, constraints); assert.deepStrictEqual(result, expected, 'Test Failed: Incorrect slots found.'); } }; -