From 94b6e24d64ab2dbc6d258a97c481ffb548966e10 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Wed, 16 Sep 2026 18:18:58 +0000 Subject: [PATCH] Add edge case tests for detectCourseContext in test-extractor.js --- test/test-extractor.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/test/test-extractor.js b/test/test-extractor.js index 9081df9..cc0e759 100644 --- a/test/test-extractor.js +++ b/test/test-extractor.js @@ -335,4 +335,32 @@ const subpageCtx = detectCourseContext('https://canvas.instructure.com/courses/9 assert.strictEqual(subpageCtx.isCourseRoot, false); assert.strictEqual(subpageCtx.courseId, '987654'); +// Edge cases for detectCourseContext +const nullCtx = detectCourseContext(null); +assert.strictEqual(nullCtx.isCourseRoot, false); +assert.strictEqual(nullCtx.courseId, null); +assert.strictEqual(nullCtx.origin, null); + +const invalidUrlCtx = detectCourseContext('invalid-url'); +assert.strictEqual(invalidUrlCtx.isCourseRoot, false); +assert.strictEqual(invalidUrlCtx.courseId, null); +assert.strictEqual(invalidUrlCtx.origin, null); + +const hashFragmentCtx = detectCourseContext('https://canvas.instructure.com/courses/987654#main'); +assert.strictEqual(hashFragmentCtx.isCourseRoot, true); +assert.strictEqual(hashFragmentCtx.courseId, '987654'); + +const nonCanvasCourseCtx = detectCourseContext('https://example.com/other/123'); +assert.strictEqual(nonCanvasCourseCtx.isCourseRoot, false); +assert.strictEqual(nonCanvasCourseCtx.courseId, null); +assert.strictEqual(nonCanvasCourseCtx.origin, 'https://example.com'); + +const noIdCtx = detectCourseContext('https://canvas.instructure.com/courses/'); +assert.strictEqual(noIdCtx.isCourseRoot, false); +assert.strictEqual(noIdCtx.courseId, null); + +const nonNumericIdCtx = detectCourseContext('https://canvas.instructure.com/courses/abc'); +assert.strictEqual(nonNumericIdCtx.isCourseRoot, false); +assert.strictEqual(nonNumericIdCtx.courseId, null); + console.log('✅ Task 3 extractor tests passed.');