test: Improve test coverage of various camera engine files (#2415)

This commit is contained in:
Dermot Duffy
2026-06-30 17:45:12 -07:00
committed by dermotduffy
parent 16ca8d79d2
commit 415a3e0886
6 changed files with 1163 additions and 50 deletions
@@ -0,0 +1,110 @@
import { describe, expect, it } from 'vitest';
import { mock } from 'vitest-mock-extended';
import {
FrigateEventViewMedia,
FrigateRecordingViewMedia,
FrigateReviewViewMedia,
} from '../../../src/camera-manager/frigate/media';
import { FrigateViewMediaClassifier } from '../../../src/camera-manager/frigate/media-classifier';
import { ViewMedia, ViewMediaType } from '../../../src/view/item';
import {
createFrigateEvent,
createFrigateRecording,
createFrigateReview,
} from '../../test-utils';
describe('FrigateViewMediaClassifier', () => {
describe('isFrigateEvent', () => {
it('should return true for event media', () => {
const media = new FrigateEventViewMedia(
ViewMediaType.Clip,
'camera',
createFrigateEvent(),
'content_id',
'thumbnail',
);
expect(FrigateViewMediaClassifier.isFrigateEvent(media)).toBe(true);
});
it('should return false for non-event media', () => {
const media = mock<ViewMedia>();
expect(FrigateViewMediaClassifier.isFrigateEvent(media)).toBe(false);
});
});
describe('isFrigateRecording', () => {
it('should return true for recording media', () => {
const media = new FrigateRecordingViewMedia(
ViewMediaType.Recording,
'camera',
createFrigateRecording(),
'id',
'content_id',
'title',
);
expect(FrigateViewMediaClassifier.isFrigateRecording(media)).toBe(true);
});
it('should return false for non-recording media', () => {
const media = mock<ViewMedia>();
expect(FrigateViewMediaClassifier.isFrigateRecording(media)).toBe(false);
});
});
describe('isFrigateReview', () => {
it('should return true for review media', () => {
const media = new FrigateReviewViewMedia(
'camera',
createFrigateReview(),
'content_id',
'thumbnail',
);
expect(FrigateViewMediaClassifier.isFrigateReview(media)).toBe(true);
});
it('should return false for non-review media', () => {
const media = mock<ViewMedia>();
expect(FrigateViewMediaClassifier.isFrigateReview(media)).toBe(false);
});
});
describe('isFrigateMedia', () => {
it('should return true for event media', () => {
const media = new FrigateEventViewMedia(
ViewMediaType.Clip,
'camera',
createFrigateEvent(),
'content_id',
'thumbnail',
);
expect(FrigateViewMediaClassifier.isFrigateMedia(media)).toBe(true);
});
it('should return true for review media', () => {
const media = new FrigateReviewViewMedia(
'camera',
createFrigateReview(),
'content_id',
'thumbnail',
);
expect(FrigateViewMediaClassifier.isFrigateMedia(media)).toBe(true);
});
it('should return true for recording media', () => {
const media = new FrigateRecordingViewMedia(
ViewMediaType.Recording,
'camera',
createFrigateRecording(),
'id',
'content_id',
'title',
);
expect(FrigateViewMediaClassifier.isFrigateMedia(media)).toBe(true);
});
it('should return false for non-frigate media', () => {
const media = mock<ViewMedia>();
expect(FrigateViewMediaClassifier.isFrigateMedia(media)).toBe(false);
});
});
});