UNPKG

@tvkitchen/countertop

Version:

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

103 lines (99 loc) 5.17 kB
"use strict"; var _baseConstants = require("@tvkitchen/base-constants"); var _ = require(".."); var _jest = require("../tools/utils/jest"); jest.mock('kafkajs'); describe('Countertop #integration', () => { describe('updateTopology', () => { it('Should generate correct simple linear topologies', async () => { const countertop = new _.Countertop(); const sourceAppliance = countertop.addAppliance((0, _jest.generateMockAppliance)({ inputTypes: [], outputTypes: [_baseConstants.dataTypes.STREAM.CONTAINER] })); const captionAppliance = countertop.addAppliance((0, _jest.generateMockAppliance)({ inputTypes: [_baseConstants.dataTypes.STREAM.CONTAINER], outputTypes: [_baseConstants.dataTypes.TEXT.ATOM] })); const topology = await countertop.updateTopology(); const stations = [sourceAppliance, captionAppliance]; expect((0, _jest.normalizeStreams)(topology.streams, stations)).toMatchSnapshot(); }); it('Should generate correct topologies with multiple sources', async () => { const countertop = new _.Countertop(); const sourceApplianceA = countertop.addAppliance((0, _jest.generateMockAppliance)({ inputTypes: [], outputTypes: [_baseConstants.dataTypes.STREAM.CONTAINER] })); const sourceApplianceB = countertop.addAppliance((0, _jest.generateMockAppliance)({ inputTypes: [], outputTypes: [_baseConstants.dataTypes.STREAM.CONTAINER] })); const captionAppliance = countertop.addAppliance((0, _jest.generateMockAppliance)({ inputTypes: [_baseConstants.dataTypes.STREAM.CONTAINER], outputTypes: [_baseConstants.dataTypes.TEXT.ATOM] })); const topology = await countertop.updateTopology(); const stations = [sourceApplianceA, sourceApplianceB, captionAppliance]; expect((0, _jest.normalizeStreams)(topology.streams, stations)).toMatchSnapshot(); }); it('Should generate correct topologies with dual inputs', async () => { const countertop = new _.Countertop(); const sourceAppliance = countertop.addAppliance((0, _jest.generateMockAppliance)({ inputTypes: [], outputTypes: [_baseConstants.dataTypes.STREAM.CONTAINER] })); const captionAppliance = countertop.addAppliance((0, _jest.generateMockAppliance)({ inputTypes: [_baseConstants.dataTypes.STREAM.CONTAINER], outputTypes: [_baseConstants.dataTypes.TEXT.ATOM] })); const imageAppliance = countertop.addAppliance((0, _jest.generateMockAppliance)({ inputTypes: [_baseConstants.dataTypes.STREAM.CONTAINER], outputTypes: ['IMAGE.JPEG'] })); const complexInputAppliance = countertop.addAppliance((0, _jest.generateMockAppliance)({ inputTypes: [_baseConstants.dataTypes.TEXT.ATOM, 'IMAGE.JPEG'], outputTypes: ['IMAGE.GIF'] })); const topology = await countertop.updateTopology(); const stations = [sourceAppliance, captionAppliance, imageAppliance, complexInputAppliance]; expect((0, _jest.normalizeStreams)(topology.streams, stations)).toMatchSnapshot(); }); it('Should generate correct topologies with dual output appliances', async () => { const countertop = new _.Countertop(); const sourceAppliance = countertop.addAppliance((0, _jest.generateMockAppliance)({ inputTypes: [], outputTypes: [_baseConstants.dataTypes.STREAM.CONTAINER] })); const complexOutputAppliance = countertop.addAppliance((0, _jest.generateMockAppliance)({ inputTypes: [_baseConstants.dataTypes.STREAM.CONTAINER], outputTypes: [_baseConstants.dataTypes.TEXT.ATOM, 'IMAGE.JPEG'] })); const topology = await countertop.updateTopology(); const stations = [sourceAppliance, complexOutputAppliance]; expect((0, _jest.normalizeStreams)(topology.streams, stations)).toMatchSnapshot(); }); it('Should generate correct topologies with dual outputs', async () => { const countertop = new _.Countertop(); const sourceAppliance = countertop.addAppliance((0, _jest.generateMockAppliance)({ inputTypes: [], outputTypes: [_baseConstants.dataTypes.STREAM.CONTAINER] })); const complexOutputAppliance = countertop.addAppliance((0, _jest.generateMockAppliance)({ inputTypes: [_baseConstants.dataTypes.STREAM.CONTAINER], outputTypes: [_baseConstants.dataTypes.TEXT.ATOM, 'IMAGE.JPEG'] })); const ocrAppliance = countertop.addAppliance((0, _jest.generateMockAppliance)({ inputTypes: ['IMAGE.JPEG'], outputTypes: [_baseConstants.dataTypes.TEXT.ATOM] })); const sentenceAppliance = countertop.addAppliance((0, _jest.generateMockAppliance)({ inputTypes: [_baseConstants.dataTypes.TEXT.ATOM], outputTypes: [_baseConstants.dataTypes.TEXT.SENTENCE] })); const topology = await countertop.updateTopology(); const stations = [sourceAppliance, complexOutputAppliance, ocrAppliance, sentenceAppliance]; expect((0, _jest.normalizeStreams)(topology.streams, stations)).toMatchSnapshot(); }); }); });