import { IVideoSource, IVideoSourceResource } from "../resources/videoSource"; import VideoSourceMapper from "../resources/videoSource/mapper"; describe("VideoSourceMapper", () => { it("correctly maps a video source to a video source model", () => { const mapper = new VideoSourceMapper(); const resource: IVideoSourceResource = { "type": "source", "id": "3636", "attributes": { "modify_date": "2018-05-10T14:26:56.446406Z", "create_date": "2018-05-10T14:26:56.446425Z", "container": "MP4", "codec": "H264", "src": "https://f1.media.brightcove.com/12/5104226627001/5104226627001_5630805396001_5615400608001.mp4?pubId=5104226627001&videoId=5615400608001", "stream_name": "stream name", "app_name": "app name", "width": 960, "height": 540, "encoding_rate": 1827000, "size": 26371304, "source_type": "source type" }, "relationships": { "video": { "data": { "type": "video", "id": "520" }, "links": { "related": "/videos/520" } } }, "links": { "self": "/videos/520/sources/3636" } }; const model: IVideoSource = mapper.toModel(resource); expect(model.id).toBe("3636"); expect(model.updatedAt).toBe("2018-05-10T14:26:56.446406Z"); expect(model.createdAt).toBe("2018-05-10T14:26:56.446425Z"); expect(model.container).toBe("MP4"); expect(model.codec).toBe("H264"); expect(model.src).toBe("https://f1.media.brightcove.com/12/5104226627001/5104226627001_5630805396001_5615400608001.mp4?pubId=5104226627001&videoId=5615400608001"); expect(model.streamName).toBe("stream name"); expect(model.appName).toBe("app name"); expect(model.width).toBe(960); expect(model.height).toBe(540); expect(model.encodingRate).toBe(1827000); expect(model.size).toBe(26371304); expect(model.sourceType).toBe("source type"); }); });