Add mock data and unit tests for Channels and Members APIs

This commit is contained in:
2025-12-07 04:41:41 -05:00
parent 4673547b95
commit a88fa40ba2
12 changed files with 1377 additions and 0 deletions

View File

@@ -0,0 +1,72 @@
import {describe, expect, it} from 'bun:test';
import {ViewingReportKind, ViewingReportKindMapping, type ViewingReportKindType} from '../../../../src/apis/Reporting/ViewingReportKind';
describe('ViewingReportKind', () => {
describe('when accessing enum values', () => {
it('should have RealTime as 0', () => {
expect(ViewingReportKind.RealTime).toBe(0);
});
it('should have HLS as 1', () => {
expect(ViewingReportKind.HLS).toBe(1);
});
it('should have DASH as 2', () => {
expect(ViewingReportKind.DASH).toBe(2);
});
});
});
describe('ViewingReportKindMapping', () => {
describe('when converting from type string to enum', () => {
it('should convert "RealTime" to ViewingReportKind.RealTime', () => {
const result = ViewingReportKindMapping.convertViewingReportKindTypeToViewingReportKind('RealTime');
expect(result).toBe(ViewingReportKind.RealTime);
});
it('should convert "HLS" to ViewingReportKind.HLS', () => {
const result = ViewingReportKindMapping.convertViewingReportKindTypeToViewingReportKind('HLS');
expect(result).toBe(ViewingReportKind.HLS);
});
it('should convert "DASH" to ViewingReportKind.DASH', () => {
const result = ViewingReportKindMapping.convertViewingReportKindTypeToViewingReportKind('DASH');
expect(result).toBe(ViewingReportKind.DASH);
});
});
describe('when converting from enum to type string', () => {
it('should convert ViewingReportKind.RealTime to "RealTime"', () => {
const result = ViewingReportKindMapping.convertViewingReportKindToViewingReportKindType(ViewingReportKind.RealTime);
expect(result).toBe('RealTime');
});
it('should convert ViewingReportKind.HLS to "HLS"', () => {
const result = ViewingReportKindMapping.convertViewingReportKindToViewingReportKindType(ViewingReportKind.HLS);
expect(result).toBe('HLS');
});
it('should convert ViewingReportKind.DASH to "DASH"', () => {
const result = ViewingReportKindMapping.convertViewingReportKindToViewingReportKindType(ViewingReportKind.DASH);
expect(result).toBe('DASH');
});
});
describe('when performing roundtrip conversions', () => {
const viewingReportKindTypes: ViewingReportKindType[] = ['RealTime', 'HLS', 'DASH'];
it.each(viewingReportKindTypes)('should preserve %s through type->enum->type conversion', kindType => {
const enumValue = ViewingReportKindMapping.convertViewingReportKindTypeToViewingReportKind(kindType);
const backToType = ViewingReportKindMapping.convertViewingReportKindToViewingReportKindType(enumValue);
expect(backToType).toBe(kindType);
});
const viewingReportKinds = [ViewingReportKind.RealTime, ViewingReportKind.HLS, ViewingReportKind.DASH];
it.each(viewingReportKinds)('should preserve enum %d through enum->type->enum conversion', kindEnum => {
const typeValue = ViewingReportKindMapping.convertViewingReportKindToViewingReportKindType(kindEnum);
const backToEnum = ViewingReportKindMapping.convertViewingReportKindTypeToViewingReportKind(typeValue);
expect(backToEnum).toBe(kindEnum);
});
});
});