- Introduces a `setup()` method in `Application` class to handle complex initialization and side effects.
- Updates `constructor` to be lightweight, only storing configuration options.
- Updates `js/bootstrap.js`, `js/embed.js`, and relevant tests to call `app.setup()` explicitly after instantiation.
- Resolves "Heavy Constructor" code health issue.
- Fixes `tests/video-modal-zap.test.mjs` environment issue with `globalThis.navigator`.
Co-authored-by: PR0M3TH3AN <[email protected]>
- Guard `js/ui/overlay/popoverEngine.js` against missing `window` and detached elements in `updatePosition`.
- Update `js/ui/components/VideoModal.js` `normalizeVideoTags` to strip `#` prefix, aligning with test expectations and display logic.
- Mock `HTMLCanvasElement.prototype.getContext` in `tests/video-modal-accessibility.test.mjs` to silence benign warnings.
Co-authored-by: PR0M3TH3AN <[email protected]>
- Added `scrollTo`, `HTMLMediaElement.prototype.pause`, and `load` polyfills in `tests/video-modal-accessibility.test.mjs` (via `setupModal`) and `tests/test-setup.mjs`.
- Added defensive check in `ModalManager.teardown` to prevent `TypeError` when removing event listeners.
- Updated `tests/video-modal-moderation.test.mjs` to use correct selector `[data-moderation-bar]` and updated assertions for moderation overlay visibility (override state).
- Created `tests/test-setup.mjs` to handle early global polyfills for dependencies like `floating-ui`.
Co-authored-by: PR0M3TH3AN <[email protected]>
- Mock HTMLMediaElement.prototype.pause/load and window.scrollTo in test setup to prevent JSDOM "Not implemented" errors.
- Fix VideoModal mock in comments tests to preserve prototype chain (using Object.create instead of spread).
- Add missing childrenByParent map to comments test payloads to fix rendering assertions.
Co-authored-by: PR0M3TH3AN <[email protected]>
- Added comprehensive comments to `js/webtorrent.js` explaining the playback strategy, service worker integration, and browser-specific quirks (Brave/Firefox).
- Patched `tests/ui/helpers/jsdom-test-helpers.mjs` to expose `HTMLStyleElement` and other globals to JSDOM, fixing `ReferenceError` in UI tests.
- Fixed `tests/ui/similar-content-card.test.mjs` to align with the current component implementation (handling detached elements) and resolving environment issues.
- Updated `tests/video-modal-accessibility.test.mjs` to safely mock `navigator` and `HTMLCanvasElement.getContext`, resolving `TypeError` and "Not implemented" errors during testing.
This addresses an issue where comments would not display on the first load of the video modal if the DOM elements were not fully bound. The `open()` method now checks if the `commentsList` is missing or disconnected and re-initializes the `CommentsController` if necessary.
Also updated `tests/video-modal-accessibility.test.mjs` to fix a JSDOM environment issue with `navigator` mocking.