diff --git a/apps/web-e2e/src/fixtures/dash/generate-fixture.mjs b/apps/web-e2e/src/fixtures/dash/generate-fixture.mjs index c16cfa487..f6522f0dd 100644 --- a/apps/web-e2e/src/fixtures/dash/generate-fixture.mjs +++ b/apps/web-e2e/src/fixtures/dash/generate-fixture.mjs @@ -26,7 +26,7 @@ * Usage: node apps/web-e2e/src/fixtures/dash/generate-fixture.mjs */ -import { execFileSync, execSync } from 'node:child_process'; +import { execFileSync } from 'node:child_process'; import { chmodSync, mkdtempSync, readdirSync, rmSync } from 'node:fs'; import { createRequire } from 'node:module'; import { tmpdir } from 'node:os'; @@ -110,14 +110,17 @@ function resolvePackager() { function fetchPackagerViaNpmPack() { const workDir = mkdtempSync(join(tmpdir(), 'shaka-packager-')); console.log(`Fetching shaka-packager via npm pack into ${workDir} ...`); - execSync('npm pack shaka-packager --silent', { + execFileSync('npm', ['pack', 'shaka-packager', '--silent'], { cwd: workDir, stdio: ['ignore', 'ignore', 'inherit'], }); const tarball = readdirSync(workDir).find((name) => name.endsWith('.tgz') ); - execSync(`tar -xzf ${JSON.stringify(tarball)}`, { cwd: workDir }); + if (!tarball) { + throw new Error('npm pack did not produce a shaka-packager tarball.'); + } + execFileSync('tar', ['-xzf', tarball], { cwd: workDir }); const binaryName = { darwin: { arm64: 'packager-osx-arm64', x64: 'packager-osx-x64' }, diff --git a/apps/web/src/test-stubs/shaka-player.js b/apps/web/src/test-stubs/shaka-player.js index 216bc07a3..05d80083b 100644 --- a/apps/web/src/test-stubs/shaka-player.js +++ b/apps/web/src/test-stubs/shaka-player.js @@ -59,7 +59,9 @@ class MockShakaPlayer { return []; } - selectAudioTrack() {} + selectAudioTrack() { + return undefined; + } getTextTracks() { return []; @@ -79,7 +81,9 @@ MockShakaPlayer.isBrowserSupported = () => true; const shaka = { Player: MockShakaPlayer, polyfill: { - installAll() {}, + installAll() { + return undefined; + }, }, __instances: [], __reset() { diff --git a/libs/ui/playback/src/lib/web-player-view/web-player-view.component.ts b/libs/ui/playback/src/lib/web-player-view/web-player-view.component.ts index 91a6bd1a5..991f9dd3f 100644 --- a/libs/ui/playback/src/lib/web-player-view/web-player-view.component.ts +++ b/libs/ui/playback/src/lib/web-player-view/web-player-view.component.ts @@ -370,34 +370,24 @@ export class WebPlayerViewComponent { } private formatPlayer(player: PlaybackDiagnostic['player']): string { - switch (player) { - case 'videojs': - return 'Video.js'; - case 'html5': - return 'HTML5'; - case 'artplayer': - return 'ArtPlayer'; - default: - return ''; - } + const labels: Record = { + videojs: 'Video.js', + html5: 'HTML5', + artplayer: 'ArtPlayer', + }; + return (player && labels[player]) || ''; } private formatDiagnosticSource( source: PlaybackDiagnostic['source'] ): string { - switch (source) { - case 'hls': - return 'HLS.js'; - case 'mpegts': - return 'mpegts.js'; - case 'native': - return 'Native media element'; - case 'shaka': - return 'Shaka Player'; - case 'source': - return 'Stream metadata'; - default: - return source; - } + const labels: Record = { + hls: 'HLS.js', + mpegts: 'mpegts.js', + native: 'Native media element', + shaka: 'Shaka Player', + source: 'Stream metadata', + }; + return labels[source] ?? source; } }