UNPKG

@tvkitchen/countertop

Version:

The entry point for developers who want to set up a TV Kitchen.

147 lines (143 loc) 6.41 kB
"use strict"; var _baseInterfaces = require("@tvkitchen/base-interfaces"); var _classes = require("../../../classes"); var _jest = require("../jest"); describe('jest', () => { describe('loadTestData', () => { it('should load data when valid json is provided', () => { expect((0, _jest.loadTestData)(__dirname, 'loadTestData.json')).toEqual(['this loads valid json']); }); }); describe('generateMockAppliance', () => { it('Should generate an IAppliance with the proper input / output types', () => { const MockAppliance = (0, _jest.generateMockAppliance)({ inputTypes: ['foo'], outputTypes: ['bar'] }); const mockAppliance = new MockAppliance(); expect(_baseInterfaces.IAppliance.isIAppliance(mockAppliance)).toBe(true); expect(MockAppliance.getInputTypes()).toEqual(['foo']); expect(MockAppliance.getOutputTypes()).toEqual(['bar']); }); it('Should generate an IAppliance with custom input / output type getters', () => { const MockAppliance = (0, _jest.generateMockAppliance)({ getInputTypes: settings => settings.inputTypes, getOutputTypes: settings => settings.outputTypes }); const mockAppliance = new MockAppliance(); const mockSettings = { inputTypes: ['foo'], outputTypes: ['bar'] }; expect(_baseInterfaces.IAppliance.isIAppliance(mockAppliance)).toBe(true); expect(MockAppliance.getInputTypes(mockSettings)).toEqual(['foo']); expect(MockAppliance.getOutputTypes(mockSettings)).toEqual(['bar']); }); }); describe('normalizeTributaryMap', () => { it('should replace stations with the correct index in a single tributary map', () => { const stationA = new _classes.CountertopStation((0, _jest.generateMockAppliance)({ inputTypes: [], outputTypes: ['foo'] })); const stationB = new _classes.CountertopStation((0, _jest.generateMockAppliance)({ inputTypes: ['foo'], outputTypes: ['bar', 'baz'] })); const stationC = new _classes.CountertopStation((0, _jest.generateMockAppliance)({ inputTypes: [], outputTypes: ['foo'] })); const stationD = new _classes.CountertopStation((0, _jest.generateMockAppliance)({ inputTypes: ['foo', 'bar'], outputTypes: ['baz'] })); const stations = [stationA, stationB, stationC, stationD]; const streamA = new _classes.CountertopStream(stationA); const streamB = new _classes.CountertopStream(stationB, new Map([['foo', streamA]])); const tributaryMap = new Map([['foo', streamA], ['bar', streamB]]); const result = (0, _jest.normalizeTributaryMap)(tributaryMap, stations); expect(result).toMatchSnapshot(); }); }); describe('normalizeTributaryMaps', () => { it('should replace stations with correct index in an array of tributary maps', () => { const stationA = new _classes.CountertopStation((0, _jest.generateMockAppliance)({ inputTypes: [], outputTypes: ['foo'] })); const stationB = new _classes.CountertopStation((0, _jest.generateMockAppliance)({ inputTypes: ['foo'], outputTypes: ['bar', 'baz'] })); const stationC = new _classes.CountertopStation((0, _jest.generateMockAppliance)({ inputTypes: [], outputTypes: ['foo'] })); const stationD = new _classes.CountertopStation((0, _jest.generateMockAppliance)({ inputTypes: ['foo', 'bar'], outputTypes: ['baz'] })); const stations = [stationA, stationB, stationC, stationD]; const streamA = new _classes.CountertopStream(stationA); const streamB = new _classes.CountertopStream(stationB, new Map([['foo', streamA]])); const streamC = new _classes.CountertopStream(stationC); const tributaryMapA = new Map([['foo', streamA], ['bar', streamB]]); const tributaryMapB = new Map([['foo', streamC]]); const tributaryMaps = [tributaryMapA, tributaryMapB]; const result = (0, _jest.normalizeTributaryMaps)(tributaryMaps, stations); expect(result).toMatchSnapshot(); }); }); describe('normalizeStream', () => { it('should replace stations with the correct index in a stream', () => { const stationA = new _classes.CountertopStation((0, _jest.generateMockAppliance)({ inputTypes: [], outputTypes: ['foo'] })); const stationB = new _classes.CountertopStation((0, _jest.generateMockAppliance)({ inputTypes: ['foo'], outputTypes: ['bar', 'baz'] })); const stationC = new _classes.CountertopStation((0, _jest.generateMockAppliance)({ inputTypes: [], outputTypes: ['foo'] })); const stationD = new _classes.CountertopStation((0, _jest.generateMockAppliance)({ inputTypes: ['foo', 'bar'], outputTypes: ['baz'] })); const stations = [stationA, stationB, stationC, stationD]; const streamA = new _classes.CountertopStream(stationA); const streamB = new _classes.CountertopStream(stationB, new Map([['foo', streamA]])); const result = (0, _jest.normalizeStream)(streamB, stations); expect(result).toMatchSnapshot(); }); }); describe('normalizeStreams', () => { it('should replace stations with the correct index in an array of streams', () => { const stationA = new _classes.CountertopStation((0, _jest.generateMockAppliance)({ inputTypes: [], outputTypes: ['foo'] })); const stationB = new _classes.CountertopStation((0, _jest.generateMockAppliance)({ inputTypes: ['foo'], outputTypes: ['bar', 'baz'] })); const stationC = new _classes.CountertopStation((0, _jest.generateMockAppliance)({ inputTypes: [], outputTypes: ['foo'] })); const stationD = new _classes.CountertopStation((0, _jest.generateMockAppliance)({ inputTypes: ['foo', 'bar'], outputTypes: ['baz'] })); const stations = [stationA, stationB, stationC, stationD]; const streamA = new _classes.CountertopStream(stationA); const streamB = new _classes.CountertopStream(stationB, new Map([['foo', streamA]])); const streams = [streamA, streamB]; const result = (0, _jest.normalizeStreams)(streams, stations); expect(result).toMatchSnapshot(); }); }); });