@tvkitchen/countertop
Version:
The entry point for developers who want to set up a TV Kitchen.
103 lines (99 loc) • 5.17 kB
JavaScript
"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();
});
});
});