in x-test.js [422:468]
static initialize(context, href) {
const url = new URL(href);
if (!url.searchParams.get('x-test-no-reporter')) {
context.state.reporter = new XTestReporter();
document.body.append(context.state.reporter);
}
context.state.coverage = url.searchParams.get('x-test-run-coverage') === '';
context.state.coverageValuePromise = new Promise(resolve => {
context.state.resolveCoverageValuePromise = value => {
context.state.coverageValue = value;
resolve(context.state.coverageValue);
};
});
const versionStepId = context.uuid();
const exitStepId = context.uuid();
context.state.stepIds.push(versionStepId, exitStepId);
context.state.steps[versionStepId] = { stepId: versionStepId, type: 'version', status: 'waiting' };
context.state.steps[exitStepId] = { stepId: exitStepId, type: 'exit', status: 'waiting' };
context.subscribe(event => {
switch (event.data.type) {
case 'x-test-client-ping':
XTestRoot.onPing(context, event);
break;
case 'x-test-client-coverage-result':
XTestRoot.onCoverageResult(context, event);
break;
case 'x-test-suite-register':
XTestRoot.onRegister(context, event);
break;
case 'x-test-suite-ready':
XTestRoot.onReady(context, event);
break;
case 'x-test-suite-result':
XTestRoot.onResult(context, event);
break;
case 'x-test-suite-bail':
XTestRoot.onBail(context, event);
break;
}
XTestRoot.check(context);
});
// Run own tests in iframe.
url.searchParams.delete('x-test-no-reporter');
url.searchParams.delete('x-test-run-coverage');
context.publish('x-test-suite-register', { type: 'test', testId: context.uuid(), href: url.href });
}