import { CoreConfigurationMediaSchema, CoreConfigurationMediaModel } from './core-configuration-media.model' describe('CoreConfigurationMediaModel', () => { describe('constructor', () => { it('should create and initialize empty model', () => { const model = new CoreConfigurationMediaModel(); expect(model.assetId).toBeUndefined(); expect(model.description).toBeNull(); expect(model.thumbnailUrl).toBeNull(); expect(model.title).toEqual(''); expect(model.type).toEqual([]); expect(model.url).toEqual(''); }); it('should intialize model from schema', () => { const schemaData: CoreConfigurationMediaSchema = generateSchemaData(); const model = new CoreConfigurationMediaModel(schemaData); expect(model.assetId).toEqual(schemaData.asset_id); expect(model.description).toEqual(schemaData.description); expect(model.thumbnailUrl).toEqual(schemaData.thumbnail_url); expect(model.title).toEqual(schemaData.title); expect(model.type).toEqual(schemaData.type); expect(model.url).toEqual(schemaData.url); }); }); describe('#fromSchema', () => { it('should initialize from a schema input', () => { const model = new CoreConfigurationMediaModel(); const schemaData: CoreConfigurationMediaSchema = generateSchemaData(); model.fromSchema(schemaData); expect(model.assetId).toEqual(schemaData.asset_id); expect(model.description).toEqual(schemaData.description); expect(model.thumbnailUrl).toEqual(schemaData.thumbnail_url); expect(model.title).toEqual(schemaData.title); expect(model.type).toEqual(schemaData.type); expect(model.url).toEqual(schemaData.url); }); }); describe('#toSchema', () => { it('should build a schema object from the model', () => { const schemaData: CoreConfigurationMediaSchema = generateSchemaData(); const model = new CoreConfigurationMediaModel(schemaData); const newSchema = model.toSchema(); expect(newSchema).toStrictEqual(schemaData); }); }); }); let generateSchemaData = function (): CoreConfigurationMediaSchema { return { asset_id: 'mock asset_id', description: 'mock description', thumbnail_url: 'mock thumbnailUrl', title: 'mock title', type: ['mock type a', 'mock type b'], url: 'mock url' } };