import { StreamLimitsModel, StreamLimitsSchema } from './stream-limits.model'; describe('StreamLimitsModel', () => { describe('constructor', () => { it('should create and initialize empty model', () => { const model = new StreamLimitsModel(); expect(model.maximumAttendees).toBe(0); expect(model.maximumStreamsPerDay).toBe(0); expect(model.maximumTimePerStream).toBe(0); }); it('should intialize model from schema', () => { const schema: StreamLimitsSchema = { maximum_attendees: 27, maximum_streams_per_day: 23, maximum_time_per_stream: 88, }; const model = new StreamLimitsModel(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('#fromSchema', () => { it('should initialize from a schema input', () => { const model = new StreamLimitsModel(); expect(model.maximumAttendees).toBe(0); expect(model.maximumStreamsPerDay).toBe(0); expect(model.maximumTimePerStream).toBe(0); const schema: StreamLimitsSchema = { maximum_attendees: 27, maximum_streams_per_day: 23, maximum_time_per_stream: 88, }; 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 StreamLimitsModel(); expect(model.maximumAttendees).toBe(0); expect(model.maximumStreamsPerDay).toBe(0); expect(model.maximumTimePerStream).toBe(0); const schema: StreamLimitsSchema = { maximum_attendees: 27, maximum_streams_per_day: 23, maximum_time_per_stream: 88, }; model.fromSchema(schema); const newSchema = model.toSchema(); expect(newSchema).toStrictEqual(schema); }); }); });