@tvkitchen/appliance-video-http-receiver
Version:
Converts a video url into MPEG-TS Payloads.
41 lines (37 loc) • 1.69 kB
JavaScript
;
var _nock = _interopRequireDefault(require("nock"));
var _VideoHttpReceiverAppliance = require("../VideoHttpReceiverAppliance");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
describe('VideoHttpReceiverAppliance #unit', () => {
describe('constructor', () => {
it('should throw an error when called without a URL', () => {
expect(() => new _VideoHttpReceiverAppliance.VideoHttpReceiverAppliance()).toThrow(Error);
});
});
describe('getInputStream', () => {
it('it should stream the client request body', () => {
const base = 'http://example.com';
const file = '/test.ts';
const body = 'it worked!';
(0, _nock.default)(base).get(file).reply(200, body);
const receiverAppliance = new _VideoHttpReceiverAppliance.VideoHttpReceiverAppliance({
url: `${base}${file}`
});
const inputStream = receiverAppliance.getInputStream();
return expect(new Promise(resolve => inputStream.on('data', resolve))).resolves.toEqual(Buffer.from(body));
});
it('it should pass on errors correctly', () => {
const base = 'http://example.com';
const file = '/error-test.ts';
const message = 'it didn\'t work!';
(0, _nock.default)(base).get(file).replyWithError({
message
});
const receiverAppliance = new _VideoHttpReceiverAppliance.VideoHttpReceiverAppliance({
url: `${base}${file}`
});
const inputStream = receiverAppliance.getInputStream();
return expect(new Promise((resolve, reject) => inputStream.on('error', reject))).rejects.toHaveProperty('name', 'FetchError');
});
});
});