feat(test): automate release acceptance gates (#294)
2 months ago
Authored
Davy* feat(test): automate release acceptance gates
* fix(test): remove obsolete escape hook
* style(rust): format release smoke support
* fix(a11y): enforce accessible theme contrast
* test(e2e): stabilize range selection assertion
* fix(a11y): stabilize alphabet rail keyboard navigation
* feat(a11y): make controls keyboard-operable
* fix(a11y): satisfy touch target size
* fix(a11y): satisfy touch target size
Parentb8ff5e2
74 files changed
- .github/workflows/ci.yml+7−0
- .github/workflows/release.yml+148−12
- oxlintrc.json+3−2
- package.json+1−0
- packaging/flatpak/generated/node-sources.0.json+15−1
- pnpm-lock.yaml+19−0
- scripts/ci/classify-changes.mjs+4−0
- scripts/validate-installed-app-smoke.mjs+167−0
- src-tauri/Cargo.toml+5
−0
src-tauri/examples/local-audio-smoke.rs+1−0src-tauri/src/automation_smoke.rs+267−0src-tauri/src/commands/bootstrap.rs+37−7src-tauri/src/lib.rs+2−0src-tauri/src/main.rs+13−0src-tauri/src/separator/bootstrap.rs+40−10src-tauri/src/services/separation.rs+27−0src-tauri/src/smoke.rs+37−0src-tauri/tests/phase6_local_smoke.rs+2−0src-tauri/tests/phase6_model_bootstrap.rs+21−0src/components/Bootstrap/ModelBootstrapBanner.test.tsx+11−0src/components/Bootstrap/ModelBootstrapBanner.tsx+6−1src/components/Bootstrap/RuntimeUpdateBanner.test.tsx+4−0src/components/Bootstrap/RuntimeUpdateBanner.tsx+30−5src/components/Layout/DesktopTitlebar.tsx+1−0src/components/Layout/GlobalProgressBar.test.tsx+15−0src/components/Layout/GlobalProgressBar.tsx+11−1src/components/Layout/SidebarRail.test.tsx+28−1src/components/Layout/SidebarRail.tsx+44−2src/components/Library/AlphabetRail.test.tsx+16−0src/components/Library/AlphabetRail.tsx+27−15src/components/Library/ImportCdgChoiceDialog.tsx+15−17src/components/Library/SongEditDialog.tsx+23−20src/components/Library/SongListItem.test.tsx+86−0src/components/Library/SongListItem.tsx+60−18src/components/Library/SongPropertiesDialog.test.tsx+90−0src/components/Library/SongPropertiesDialog.tsx+36−15src/components/Lyrics/LyricLine.test.tsx+4−1src/components/Lyrics/LyricLine.tsx+36−19src/components/Lyrics/LyricsEditDialog.tsx+24−9src/components/Overlay/DialogBackdrop.test.tsx+23−0src/components/Overlay/DialogBackdrop.tsx+21−0src/components/Player/RotationControls.tsx+9−2src/components/Player/SeekBar.test.tsx+40−0src/components/Player/SeekBar.tsx+49−1src/components/Player/SingerPickerDialog.tsx+12−4src/components/Settings/ConfirmationDialog.tsx+16−9src/components/Settings/InputDialog.tsx+23−19src/components/Settings/IntegrityReportModal.test.tsx+6−0src/components/Settings/IntegrityReportModal.tsx+24−2src/components/Settings/RemoteLibraryWizard.test.tsx+5−0src/components/Settings/RemoteLibraryWizard.tsx+76−9src/components/Settings/SettingsOverlay.test.tsx+4−1src/components/Settings/SettingsOverlay.tsx+21−1src/components/Settings/SettingsRuntimeSection.tsx+1−0src/hooks/use-escape-key.ts+0−17src/hooks/use-keyboard-shortcuts.test.ts+59−0src/hooks/use-keyboard-shortcuts.ts+1−1src/hooks/use-modal-dialog.test.tsx+101−0src/hooks/use-modal-dialog.ts+138−0src/styles/globals.css+24−25tests/ci/classify-changes.test.ts+12−0tests/e2e/SMOKE.md+25−5tests/e2e/accessibility.spec.ts+84−0tests/e2e/lyrics-follow.spec.ts+1−1tests/e2e/lyrics.spec.ts+1−1tests/e2e/playback-controls.spec.ts+1−1tests/e2e/playback-volume-layout.spec.ts+1−1tests/e2e/playback.spec.ts+30−5tests/e2e/queue-rotation.spec.ts+3−1tests/e2e/scrollbar.spec.ts+1−1tests/e2e/smoke.spec.ts+3−3tests/e2e/virtualized-large-library.spec.ts+13−20tests/model-resolver-parity.test.ts+1−0tests/release-workflow.test.ts+18−3