vast-player-react
Version:
A React Component That Plays an Inline VAST 4.0 Ad
61 lines (53 loc) • 1.66 kB
JSX
;
import React from 'react';
import ReactDom from 'react-dom';
import TestUtils from 'react-addons-test-utils';
import Companion from '../lib/in-line/companion.jsx';
import testUtil from '../test/test-util';
import assert from 'assert';
import jsdom from 'mocha-jsdom';
describe('Compaion Ads', () => {
jsdom();
const app = testUtil.getExpressApp();
let server = null;
let companionDocNode = null;
let startedCount = 0;
let completedCount = 0;
before(() => {
server = app.listen(8080);
app.get('/start', () => {
startedCount++;
});
app.get('/complete', () => {
completedCount++;
});
return testUtil.getTestXml('./test/data/inline-test.xml').then((json) => {
const companionAds = json.vast.ad[0].inLine.creatives.creative[1].companionAds;
const companions = companionAds.companion;
const companionDom = companions.map((comp, key) => {
return (<Companion
key={`dude-${key}`}
duration={companionAds.duration.getValue()}
tracking={(comp.trackingEvents ?
comp.trackingEvents.tracking : [])}
companion={comp}
/>);
});
const companionDoc = TestUtils.renderIntoDocument(
<div>{companionDom}</div>
);
companionDocNode = ReactDom.findDOMNode(companionDoc);
}).delay(1050);
});
after(() => (
server.close()
));
it('Validate Dom', () => {
assert.equal(companionDocNode.tagName, 'DIV');
assert.equal(companionDocNode.children.length, 3);
});
it('Validate Tracking', () => {
assert.equal(startedCount, 2);
assert.equal(completedCount, 1);
});
});