chore: Enforce a few house rules via eslint (#2539)

This commit is contained in:
Dermot Duffy
2026-06-30 17:45:13 -07:00
committed by dermotduffy
parent 5572ec728e
commit 921d45e577
100 changed files with 479 additions and 295 deletions
@@ -3,7 +3,11 @@ import { mock } from 'vitest-mock-extended';
import { WebkitFullScreenProvider } from '../../../../src/card-controller/fullscreen/webkit';
import { ConditionStateManager } from '../../../../src/condition-trigger/conditions/state-manager';
import { MediaPlayerController, WebkitHTMLVideoElement } from '../../../../src/types';
import { createCardAPI, createMediaLoadedInfo } from '../../../test-utils';
import {
createCardAPI,
createMediaLoadedInfo,
flushPromises,
} from '../../../test-utils';
const createWebkitVideoElement = (): HTMLVideoElement &
Partial<WebkitHTMLVideoElement> => {
@@ -242,7 +246,7 @@ describe('WebkitFullScreenProvider', () => {
provider.connect();
const element = createWebkitVideoElement();
element.play = vi.fn();
element.play = vi.fn().mockResolvedValue(undefined);
const mediaPlayerController = createMediaPlayerController(element);
vi.mocked(api.getMediaLoadedInfoManager().get).mockReturnValue(
@@ -263,4 +267,30 @@ describe('WebkitFullScreenProvider', () => {
expect(element.play).toBeCalled();
});
it('should swallow a rejected video replay after fullscreen ends', async () => {
const api = createCardAPI();
const stateManager = new ConditionStateManager();
vi.mocked(api.getConditionStateManager).mockReturnValue(stateManager);
const provider = new WebkitFullScreenProvider(api, vi.fn());
provider.connect();
const element = createWebkitVideoElement();
element.play = vi.fn().mockRejectedValue(new Error('denied'));
const mediaPlayerController = createMediaPlayerController(element);
vi.mocked(api.getMediaLoadedInfoManager().get).mockReturnValue(
createMediaLoadedInfo({ mediaPlayerController }),
);
stateManager.setState({
mediaLoadedInfo: createMediaLoadedInfo({ mediaPlayerController }),
});
element.dispatchEvent(new Event('webkitendfullscreen'));
vi.runOnlyPendingTimers();
await flushPromises();
expect(element.play).toBeCalled();
});
});