Refactor media info handling into a controller.

This commit is contained in:
Dermot Duffy
2023-05-21 09:29:13 -07:00
parent 560c90dda1
commit 8658cc500f
5 changed files with 296 additions and 41 deletions
+26
View File
@@ -0,0 +1,26 @@
import { beforeEach, describe, expect, it } from 'vitest';
import { MediaLoadedInfoController } from '../../src/utils/media-info-controller';
import { createMediaLoadedInfo } from '../test-utils.js';
describe('MediaLoadedInfoController', () => {
let controller: MediaLoadedInfoController;
beforeEach(() => {
controller = new MediaLoadedInfoController();
})
it('should set', () => {
const info = createMediaLoadedInfo()
controller.set(info);
expect(controller.has());
expect(controller.get()).toBe(info)
});
it('should get last known', () => {
const info = createMediaLoadedInfo()
controller.set(info);
expect(controller.has()).toBeTruthy();
controller.clear();
expect(controller.has()).toBeFalsy();
expect(controller.getLastKnown()).toBe(info);
});
});