import { StreamHostOptionsModel, StreamHostOptionsSchema, } from './stream-host-options.model'; describe('StreamHostOptionsModel', () => { describe('constructor', () => { it('should create and initialize empty model', () => { const model = new StreamHostOptionsModel(); expect(model.enableCamera).toBe(false); expect(model.enableMicrophone).toBe(false); }); it('should intialize model from schema', () => { const schema: StreamHostOptionsSchema = { enable_camera: true, enable_microphone: true, }; const model = new StreamHostOptionsModel(schema); expect(model.enableCamera).toBe(schema.enable_camera); expect(model.enableMicrophone).toBe(schema.enable_microphone); }); }); describe('#fromSchema', () => { it('should initialize from a schema input', () => { const model = new StreamHostOptionsModel(); expect(model.enableCamera).toBe(false); expect(model.enableMicrophone).toBe(false); const schema: StreamHostOptionsSchema = { enable_camera: true, enable_microphone: true, }; model.fromSchema(schema); expect(model.enableCamera).toBe(schema.enable_camera); expect(model.enableMicrophone).toBe(schema.enable_microphone); }); }); describe('#toSchema', () => { it('should build a schema object from the model', () => { const model = new StreamHostOptionsModel(); expect(model.enableCamera).toBe(false); expect(model.enableMicrophone).toBe(false); const schema: StreamHostOptionsSchema = { enable_camera: true, enable_microphone: true, }; model.fromSchema(schema); const newSchema = model.toSchema(); expect(newSchema).toStrictEqual(schema); }); }); });