import { StreamLimitsResponseModel, StreamLimitsResponseSchema, } from './stream-limits-response.model'; describe('StreamLimitsResponseModel', () => { describe('constructor', () => { it('should create and initialize empty model', () => { const model = new StreamLimitsResponseModel(); expect(model.maximumAttendees).toBe(0); expect(model.maximumStreamsPerDay).toBe(0); expect(model.maximumTimePerStream).toBe(0); }); it('should initialize model from schema', () => { const schema: StreamLimitsResponseSchema = { maximum_attendees: 27, maximum_streams_per_day: 23, maximum_time_per_stream: 88, }; const maximumAttendeesGlobal = '5'; process.env.MAXIMUM_ATTENDEES_PER_STREAM = maximumAttendeesGlobal; const model = new StreamLimitsResponseModel(schema); expect(model.maximumAttendees).toBe(+maximumAttendeesGlobal); expect(model.maximumStreamsPerDay).toBe(schema.maximum_streams_per_day); expect(model.maximumTimePerStream).toBe(schema.maximum_time_per_stream); }); }); describe('#fromSchema', () => { it('should initialize from a schema input', () => { const model = new StreamLimitsResponseModel(); expect(model.maximumAttendees).toBe(0); expect(model.maximumStreamsPerDay).toBe(0); expect(model.maximumTimePerStream).toBe(0); const schema: StreamLimitsResponseSchema = { maximum_attendees: 27, maximum_streams_per_day: 23, maximum_time_per_stream: 88, }; process.env.MAXIMUM_ATTENDEES_PER_STREAM = '30'; model.fromSchema(schema); expect(model.maximumAttendees).toBe(schema.maximum_attendees); expect(model.maximumStreamsPerDay).toBe(schema.maximum_streams_per_day); expect(model.maximumTimePerStream).toBe(schema.maximum_time_per_stream); }); }); describe('#toSchema', () => { it('should build a schema object from the model', () => { const model = new StreamLimitsResponseModel(); expect(model.maximumAttendees).toBe(0); expect(model.maximumStreamsPerDay).toBe(0); expect(model.maximumTimePerStream).toBe(0); const schema: StreamLimitsResponseSchema = { maximum_attendees: 27, maximum_streams_per_day: 23, maximum_time_per_stream: 88, }; process.env.MAXIMUM_ATTENDEES_PER_STREAM = '30'; model.fromSchema(schema); const newSchema = model.toSchema(); expect(newSchema).toStrictEqual(schema); }); }); });