73 lines
3.1 KiB
TypeScript
73 lines
3.1 KiB
TypeScript
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);
|
|
});
|
|
});
|
|
});
|