Add CI test job for PRs; fix edit-cue provider injection, disc.spec popup, persistence timing#199
Open
Copilot wants to merge 5 commits into
Open
Add CI test job for PRs; fix edit-cue provider injection, disc.spec popup, persistence timing#199Copilot wants to merge 5 commits into
Copilot wants to merge 5 commits into
Conversation
Co-authored-by: Bludwarf <6860189+Bludwarf@users.noreply.github.com>
…t compat; code quality improvements - Fix Disc.File.newTrack(): use global track count (preceding files + current) for correct track number instead of file-local count, fixing tracks in multi-file discs getting wrong numbers - Fix Disc.File.remove(): loop started at file index instead of first-following-track index, and incorrectly modified file-local track.index; now only decrements global track.number for tracks in following files - Fix LocalAndDistantPersistence.spec.ts: replace .catch(done) with .catch(() => done()) to be compatible with Jasmine 5 where done(arg) is treated as test failure - Fix missing semicolons in Collection.ts pushDiscs/pushDiscIds - Improve yt-helper.ts: use const/single-quotes consistent with project style Co-authored-by: Bludwarf <6860189+Bludwarf@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Propose code corrections and improvements
Fix track numbering and file removal bugs; Jasmine 5 test compatibility
Mar 18, 2026
Co-authored-by: Bludwarf <6860189+Bludwarf@users.noreply.github.com>
… toBe; persistence timing; promiseRetry done() - .github/workflows/main.yml: add pull_request trigger, separate test job (runs on push+PR) and build job (push only, depends on test) - edit-cue.component.spec.ts: use providers from app.module (fixes NG0201 for GapiClientService) and add spyOn(window, 'alert') to prevent ngOnInit popup blocking tests - disc.spec.ts: change toEqual → toBe for track/file identity comparisons in the remove test (prevents Jasmine deep-printer circular-reference hang) - persistence.spec.ts: add 1ms delay between discV1 and discV2 saves in testSync to ensure strictly-later lastmod, fixing intermittent reverse-sync timing failure - PromiseRetry.spec.ts: .then(done) → .then(() => done()) for Jasmine 5 compatibility - generate-dot-env.ts: use fallback '' for GOOGLE_API_KEY when not set, preventing afterAll error and exit code 1 in CI Co-authored-by: Bludwarf <6860189+Bludwarf@users.noreply.github.com>
Copilot
AI
changed the title
Fix track numbering and file removal bugs; Jasmine 5 test compatibility
Add CI test job for PRs; fix edit-cue provider injection, disc.spec popup, persistence timing
Mar 18, 2026
bf51510 to
a84ac62
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Tests were not gated on PRs, and two spec failures were blocking local test runs: a missing DI provider in
edit-cue.component.spec.tsand Karma hanging indisc.spec.tsdue to circular-reference serialization.GitHub Actions
testjob that runs on bothpushandpull_request(main/master), making it a required PR checkbuild(deploy to gh-pages) nowneeds: testand only runs onpushedit-cue.component.spec.ts— NG0201 + Karma popupprovidersfromapp.modulebut defined its own inline array withoutGapiClientService→ replaced withproviders: providersspyOn(window, 'alert')beforefixture.detectChanges():ngOnInit()callsalert()synchronously when noidURL param is present, blocking Chrome in non-headless modedisc.spec.ts— Karma freeze on circular object comparisontoEqual→toBeforDisc.Track/Disc.Fileidentity assertions in theremovetesttrack → file → disc → files → trackwhen atoEqualfails, hanging the browserpersistence.spec.ts— intermittent reverse-sync failurediscV1anddiscV2were saved within the same millisecond; equallastmodcaused sync to pick the wrong version viasyncCommonDiscawait new Promise(r => setTimeout(r, 1))between the two saves to guarantee a strictly later timestampPromiseRetry.spec.ts+generate-dot-env.ts.then(done)→.then(() => done())— same Jasmine 5 fix previously applied toLocalAndDistantPersistence.spec.tsGOOGLE_API_KEY || ''fallback ingenerate-dot-env.ts: without it, an unset key omits the JSON field,environment-with-dot-env.tsthrows inafterAll, andng testexits with code 1Net result: 81 tests pass (was 72 —
EditCueComponentwas silently excluded), exit code 0.Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
accounts.google.com/proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4551 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-23048408 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,17698720543109095867,3431642268360058015,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041(dns block)/opt/google/chrome/chrome /usr/bin/google-chrome --user-data-dir=/tmp/karma-23048408 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --headless --disable-gpu --no-sandbox --disable-extensions --disable-dev-shm-usage http://localhost:9876/?id=23048408 --headless --disable-gpu --disable-dev-shm-usage(dns block)/proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4705 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-50519120 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,5052830694406610612,5289563395826748463,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041(dns block)clients2.google.com/proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4551 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-23048408 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,17698720543109095867,3431642268360058015,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041(dns block)/opt/google/chrome/chrome /usr/bin/google-chrome --user-data-dir=/tmp/karma-23048408 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --headless --disable-gpu --no-sandbox --disable-extensions --disable-dev-shm-usage http://localhost:9876/?id=23048408 --headless --disable-gpu --disable-dev-shm-usage(dns block)/proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4705 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-50519120 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,5052830694406610612,5289563395826748463,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041(dns block)clientservices.googleapis.com/proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4551 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-23048408 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,17698720543109095867,3431642268360058015,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041(dns block)/opt/google/chrome/chrome /usr/bin/google-chrome --user-data-dir=/tmp/karma-23048408 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --headless --disable-gpu --no-sandbox --disable-extensions --disable-dev-shm-usage http://localhost:9876/?id=23048408 --headless --disable-gpu --disable-dev-shm-usage(dns block)/proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4705 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-50519120 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,5052830694406610612,5289563395826748463,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041(dns block)redirector.gvt1.com/proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4551 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-23048408 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,17698720543109095867,3431642268360058015,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041(dns block)/opt/google/chrome/chrome /usr/bin/google-chrome --user-data-dir=/tmp/karma-23048408 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --headless --disable-gpu --no-sandbox --disable-extensions --disable-dev-shm-usage http://localhost:9876/?id=23048408 --headless --disable-gpu --disable-dev-shm-usage(dns block)/proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4705 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-50519120 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,5052830694406610612,5289563395826748463,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041(dns block)safebrowsingohttpgateway.googleapis.com/proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4551 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-23048408 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,17698720543109095867,3431642268360058015,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041(dns block)/opt/google/chrome/chrome /usr/bin/google-chrome --user-data-dir=/tmp/karma-23048408 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --headless --disable-gpu --no-sandbox --disable-extensions --disable-dev-shm-usage http://localhost:9876/?id=23048408 --headless --disable-gpu --disable-dev-shm-usage(dns block)/proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4705 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-50519120 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,5052830694406610612,5289563395826748463,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041(dns block)www.google-analytics.com/home/REDACTED/work/_temp/ghcca-node/node/bin/node node node_modules/.bin/ng test --watch=false --browsers=ChromeHeadlessCI(dns block)/home/REDACTED/work/_temp/ghcca-node/node/bin/node node node_modules/.bin/ng test --watch=false --browsers=ChromeHeadlessCI --include=src/app/edit-cue/**/*.spec.ts(dns block)/home/REDACTED/work/_temp/ghcca-node/node/bin/node node node_modules/.bin/ng test --watch=false --browsers=ChromeHeadlessCI --no-sandbox --disable-extensions --disable-dev-shm-usage http://localhost:9876/?id=58659919 --headless --disable-gpu --disable-dev-shm-usage(dns block)www.google.com/proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4551 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-23048408 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,17698720543109095867,3431642268360058015,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041(dns block)/opt/google/chrome/chrome /usr/bin/google-chrome --user-data-dir=/tmp/karma-23048408 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --headless --disable-gpu --no-sandbox --disable-extensions --disable-dev-shm-usage http://localhost:9876/?id=23048408 --headless --disable-gpu --disable-dev-shm-usage(dns block)/proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4705 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-50519120 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,5052830694406610612,5289563395826748463,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041(dns block)www.youtube.com/proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=7472 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-51663937 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,9424112755952267866,570849751029864150,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041(dns block)/opt/google/chrome/chrome /usr/bin/google-chrome --user-data-dir=/tmp/karma-51663937 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --headless --disable-gpu --no-sandbox --disable-extensions --disable-dev-shm-usage http://localhost:9876/?id=51663937 --headless --disable-gpu --disable-dev-shm-usage(dns block)/proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=8200 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-67747167 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,10038901534273585361,3152249369383232032,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041(dns block)If you need me to access, download, or install something from one of these locations, you can either:
💬 Send tasks to Copilot coding agent from Slack and Teams to turn conversations into code. Copilot posts an update in your thread when it's finished.