Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
test('sessionValidator#connect-metadata', t => {
// Creation == connect
const validator = new XVIZSessionValidator();
validator.onConnect();
validator.onStart({version: '2.0.0'});
validator.onMetadata({version: '2.0.0'});
const s = validator.stats;
const e = {};
e[MessageTypes.METADATA] = 1;
e[MessageTypes.START] = 1;
t.deepEqual(s.messages, e, 'got all messages');
t.deepEqual(s.validationErrors, {}, 'all valid');
t.deepEqual(s.stateErrors, {}, 'valid transitions');
t.end();
});
test('sessionValidator#connect-reset-state', t => {
// Creation == connect
const validator = new XVIZSessionValidator();
validator.onConnect();
validator.onClose();
const s = validator.stats;
t.deepEqual({}, s.messages, 'no messages');
t.deepEqual(s.validationErrors, {}, 'all valid');
t.equal(1, Object.keys(s.stateErrors).length, 'close after open is an error');
t.end();
});
test('sessionValidator#connect-start-error', t => {
// Creation == connect
const validator = new XVIZSessionValidator();
validator.onConnect();
validator.onStart({version: '3.0.0'});
validator.onError({message: 'unsupported version'});
const s = validator.stats;
const e = {};
e[MessageTypes.START] = 1;
e[MessageTypes.ERROR] = 1;
t.deepEqual(s.messages, e, 'got all messages');
t.deepEqual(s.validationErrors, {}, 'all valid');
t.deepEqual(s.stateErrors, {}, 'valid transitions');
t.end();
});
test('sessionValidator#connect-metadata', t => {
// Creation == connect
const validator = new XVIZSessionValidator();
validator.onConnect();
validator.onStart({version: '2.0.0'});
validator.onMetadata({version: '2.0.0'});
validator.onTransformLog({
id: '9a71050b-4143-479e-8700-36ec2ed8670a'
});
validator.onStateUpdate(MINIMAL_STATE_UPDATE);
validator.onStateUpdate(MINIMAL_STATE_UPDATE);
validator.onTransformLogDone({
id: '9a71050b-4143-479e-8700-36ec2ed8670a'
});
const s = validator.stats;
const e = {};
test('sessionValidator#connect-metadata', t => {
// Creation == connect
const validator = new XVIZSessionValidator();
validator.onConnect();
validator.onMetadata({version: '2.0.0'});
const s = validator.stats;
const e = {};
e[MessageTypes.METADATA] = 1;
t.deepEqual(e, s.messages, 'got metadata');
t.deepEqual(s.validationErrors, {}, 'all valid');
t.equal(1, Object.keys(s.stateErrors).length, 'metadata before start');
t.end();
});
test('sessionValidator#connect-metadata-live-data', t => {
const validator = new XVIZSessionValidator();
validator.onConnect();
validator.onStart({
version: '2.0.0',
session_type: 'LIVE' // eslint-disable-line camelcase
});
validator.onMetadata({version: '2.0.0'});
validator.onStateUpdate(MINIMAL_STATE_UPDATE);
validator.onStateUpdate(MINIMAL_STATE_UPDATE);
const s = validator.stats;
const e = {};
e[MessageTypes.METADATA] = 1;
e[MessageTypes.START] = 1;
e[MessageTypes.STATE_UPDATE] = 2;
export function command(args) {
// Validate the message flow
const options = {verbose: !args.condensed};
if (!args.condensed) {
options.invalidCallback = (t, e, m) => {
printValidationError(t, e, m, args);
};
}
const validator = new XVIZSessionValidator(options);
let printed = false;
const printSummary = () => {
if (!printed) {
printErrorSummary(validator.stats, args);
printed = true;
}
};
// Report validation as we go
const reportValidation = {
onMetadata: msg => {
if (args.metadata) {
printSummary();
}
},