* test(e2e): strengthen reviewed assertions
* test(e2e): tighten types and scope pageerror capture
- markdown-link-persistence: merge compact/full op type into a single
optional-field shape so `in`-based narrowing isn't needed, and add
non-null assertions after `expect(...).not.toBeNull()` so the spec
satisfies e2e tsconfig `strict: true`.
- issue-provider-panel: attach the `pageerror` listener after the panel
is open and detach before the final assertion to avoid attributing
unrelated startup noise to the dialog loop.
- recurring-task: document the prefix contract on
`addTaskWithoutWaitingForTodayList` and why `BasePage.addTask` cannot
be reused for future-dated tasks.
Replace 7 explicit `any` types with proper TypeScript types:
- Error handling: Use type guard pattern for error messages
- Page parameters: Use Playwright's Page type
- Result objects: Use Record<string, unknown> for dynamic objects
This improves IDE autocomplete, type checking, and may surface hidden bugs.
The plugin-feature-check test was failing intermittently because window.ng
might not be available immediately after Angular bootstrap. Added polling
logic (5s timeout, 100ms intervals) to wait for window.ng to become available.
The test was incomplete - it collected hasPluginService data but never asserted it.
The string-based service lookup via injector.get() didn't work because Angular's DI
expects Type/InjectionToken, not strings. Fixed by checking if Angular's root component
is accessible, which guarantees all root-level services (including PluginService) exist.
Refactored plugin-iframe tests to be more reliable in CI environment:
- Replaced arbitrary waitForTimeout calls with proper waitFor conditions
- Used Playwright locators instead of page.evaluate() for DOM manipulation
- Added proper state verification using waitForFunction
- Increased timeouts appropriately for CI environment
- Improved error handling for iframe content access
- Made test more resilient to timing variations
These changes make the tests deterministic and reliable across different
environments without relying on fixed wait times.
- Remove all console.log statements from E2E test files
- Replace console.error with throw new Error for proper error handling
- Remove console.warn statements
- Fix unused variable linting errors in plugin tests