mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-08-06 03:15:28 +00:00
* Fix test suite: ESM loading and stub isolation (refs #605) Three targeted fixes to reduce suite failures from 9 → 1: 1. package.json: add "type": "module" so Node loads static/js/** as ES modules. Fixes 7 tests in test_compare_js.py and test_reply_recipients_js.py that fail with "SyntaxError: Unexpected token 'export'". 2. test_null_owner_gates.py: add Base and ChatMessage to the core.database stub. Without Base the scheduler test cannot import at collection time; without ChatMessage core/__init__.py fails mid-load when session_manager.py tries to import it, leaving core partially initialised in sys.modules and poisoning the auth manager migration test that runs later in the same file. 3. test_task_scheduler_session_delivery.py: skip gracefully when core.database is stubbed (Base is a MagicMock) rather than crashing. The test passes correctly when run in isolation. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Scope ESM declaration to static/js/ and document isolation workaround Per review feedback on #844: 1. Move "type": "module" from root package.json to static/js/package.json. The root package.json had no type field (defaulted to CJS) and should stay that way — vendored UMD bundles in static/lib/ use require() internally and would break if Node ever tried to load them as ES modules. Node resolves the nearest package.json, so adding it in static/js/ scopes the ESM declaration to just the files the JS unit tests actually load (compare/state.js, emailLibrary/replyRecipients.js). 2. Expand the module-level skip comment in test_task_scheduler_session_delivery to document that it is a temporary isolation workaround, explain root cause (test_null_owner_gates installs a module-level sys.modules stub with no cleanup), record before/after suite numbers, and note the clean path (refactor to fixture-scoped stub). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| calendar | ||
| compare | ||
| editor | ||
| emailLibrary | ||
| research | ||
| a11y.js | ||
| admin.js | ||
| assistant.js | ||
| calendar.js | ||
| censor.js | ||
| chat.js | ||
| chatRenderer.js | ||
| chatStream.js | ||
| codeRunner.js | ||
| colorPicker.js | ||
| cookbook-diagnosis.js | ||
| cookbook-hwfit.js | ||
| cookbook.js | ||
| cookbookDownload.js | ||
| cookbookRunning.js | ||
| cookbookServe.js | ||
| document.js | ||
| documentLibrary.js | ||
| dragSort.js | ||
| emailInbox.js | ||
| emailLibrary.js | ||
| emojiPicker.js | ||
| escMenuStack.js | ||
| fileHandler.js | ||
| gallery.js | ||
| galleryEditor.js | ||
| group.js | ||
| init.js | ||
| keyboard-shortcuts.js | ||
| langIcons.js | ||
| markdown.js | ||
| memory.js | ||
| modalManager.js | ||
| modalSnap.js | ||
| modelPicker.js | ||
| models.js | ||
| modelSort.js | ||
| MODULE_SUMMARY.md | ||
| notes.js | ||
| package.json | ||
| platform.js | ||
| presets.js | ||
| providers.js | ||
| rag.js | ||
| researchSynapse.js | ||
| search-chat.js | ||
| search.js | ||
| section-management.js | ||
| sessions.js | ||
| settings.js | ||
| sidebar-layout.js | ||
| signature.js | ||
| skills.js | ||
| slashAutocomplete.js | ||
| slashCommands.js | ||
| spinner.js | ||
| storage.js | ||
| tasks.js | ||
| theme.js | ||
| tileManager.js | ||
| tourAutoplay.js | ||
| tourHints.js | ||
| tts-ai.js | ||
| ui.js | ||
| voiceRecorder.js | ||
| windowDrag.js | ||
| windowResize.js | ||