Commit Graph
16 Commits
Author SHA1 Message Date
4grayand4gray ef900d0f2a [codex] Add scoped coverage reporting (#1024)
* add scoped coverage reporting

* fix coverage review feedback

---------

Co-authored-by: 4gray <fourgray@proton.me>
2026-06-06 17:41:40 +02:00
4gray 6ae1251ad1 fix(playback): use inline player for collection VOD (#928)
* feat(portal): add series quick start CTA
Entire-Checkpoint: f957cd9849e0

* fix(playback): use inline player for collection vod

* fix(playback): address inline collection review feedback

* fix(playback): ignore stale vod position loads
2026-05-12 19:26:40 +02:00
4gray 6cbf2a1cfb feat(m3u): add context menus to recent channels
Entire-Checkpoint: f957cd9849e0
2026-05-05 00:27:15 +02:00
4gray 290843ef3f fix: restore recent live favorite toggles
Entire-Checkpoint: c2cea9c530e6
2026-04-30 21:35:39 +02:00
4gray e9a36b55ff test(e2e): update player close button references and enhance visibility checks
Entire-Checkpoint: c2cea9c530e6
2026-04-30 19:49:18 +02:00
4gray c123fbf115 test(e2e): update favorites and recently viewed handling to use global paths 2026-04-23 00:03:48 +02:00
4gray ff605fc024 fix(xtream): enhance content retrieval by adding content type filtering for Xtream ID lookups #756
Entire-Checkpoint: c6e522b4276c
2026-04-19 22:33:49 +02:00
4gray 7f92dd359c test(e2e): streamline expect statements and improve inline detail tests for favorites and recent items
- Simplified expect statements for channel items and content cards in favorites and recent tests.
- Added new tests for opening Xtream favorite movies and series inline from favorites without switching playlists.
- Enhanced existing tests to ensure consistent behavior when navigating back from detail views.
- Introduced utility function expectInlineCollectionDetail to reduce code duplication in inline detail checks.
- Improved error handling for back button clicks in detail views.

Entire-Checkpoint: c6e522b4276c
2026-04-18 10:17:13 +02:00
4gray 26fa697afe test(e2e): add comprehensive tests for dashboard activation, favorites, recent items, and settings behavior
Entire-Checkpoint: 02062a64b591
2026-04-04 10:09:27 +02:00
4gray bf09b39ffc test(e2e): replace content card visibility checks with dedicated function for better readability 2026-04-02 08:45:50 +02:00
4gray a15ac7f7c1 test(e2e): enhance category management dialog and update playlist handling 2026-04-01 22:41:15 +02:00
Claude 0f3a75f2b2 fix(e2e): fix category-management navigation race and grid card click race
Two separate root causes:

1. category-management.e2e.ts: openWorkspaceSection('Live TV') was not
   awaited — pickSidebarCategory ran before the route settled on the live
   section, so it read VOD categories from the stale sidebar (e.g. 'Action'
   instead of a live category). The manage-categories dialog opens for the
   live section, so searching for a VOD name found nothing.
   Fix: add waitForURL(/\/workspace\/xtreams\/[^/]+\/live/) after both
   openWorkspaceSection('Live TV') calls.

2. recent.e2e.ts / favorites.e2e.ts: waitForFirstGridListCardTitle read
   the first card's title, but clickGridListCardByTitle then did a fresh
   DOM search by that title. Between those two calls the grid could
   re-sort/paginate, making the card unfindable.
   Fix: new clickFirstGridListCard helper atomically reads the title and
   clicks the same card reference, replacing the two-step pattern.

https://claude.ai/code/session_01VU6ZZTG7YrhKhKBQvBfmpp
2026-04-01 06:07:26 +00:00
Claude ffa5b59a5c fix(e2e): fix category-management filter scoping and recent grid pagination
- category-management: replace filter({ has: dialog.locator(...) }) with
  filter({ hasText }) on the .category-item row. Playwright cannot scope an
  absolute locator (created via dialog.locator()) to each candidate element
  when used inside filter({ has: }), so the query always returned empty.
  Using hasText on the whole row correctly retries until Angular's @for loop
  re-renders filteredCategories() after the search field is populated.

- recent.e2e.ts Xtream test: same pagination fix as favorites — derive
  movieTitle and seriesTitle from waitForFirstGridListCardTitle() instead of
  pickDistinctTitles(fixture.items)[0], which may be on page 2 of the
  date-sorted grid and never visible.

https://claude.ai/code/session_01VU6ZZTG7YrhKhKBQvBfmpp
2026-04-01 05:08:30 +00:00
Claude ef344f4ee8 fix(e2e): resolve 4 remaining test failures in electron e2e suite
- Fix getVisibleSourceTitles: use .playlist-title selector instead of
  .mdc-list-item__primary-text which no longer matches playlist-item component
- Fix category-management test: re-navigate to sources page after
  refreshSource since refresh navigates away from sources
- Fix recent.e2e test: remove switchUnifiedCollectionContent calls after
  clearRecentItems since the content toggle disappears when all items cleared
- Fix stalker mock server: generate numeric episode IDs ("1","2",...) in
  season.series array so toSeriesNumbers() can parse them; previously used
  non-numeric IDs like "30000-s1-e1" which parsed to NaN, producing empty
  episode arrays and causing playFirstSeriesEpisode to time out

https://claude.ai/code/session_01VU6ZZTG7YrhKhKBQvBfmpp
2026-03-30 18:35:17 +00:00
4gray 3a66bf21a3 test(e2e): enhance Xtream category management and sorting with unique title handling 2026-03-29 13:37:48 +02:00
4gray f6f3103794 feat(e2e): add tests for recent channels, settings persistence, and sources management
- Implemented tests for tracking recently viewed channels in M3U playlists, ensuring they persist across app restarts.
- Added functionality to manage Xtream and Stalker history, including support for clearing recent items.
- Enhanced settings tests to verify persistence of user preferences across app restarts, including language, video player, and theme settings.
- Created comprehensive tests for managing sources, including filtering, sorting, editing, and deleting M3U, Xtream, and Stalker sources.
- Introduced mock fixtures for Xtream and Stalker categories to facilitate testing.
2026-03-29 00:58:36 +01:00