47 lines
1.1 KiB
JavaScript
47 lines
1.1 KiB
JavaScript
/**
|
|
* These are all needed to make otel to work correctly for IE
|
|
*/
|
|
window.__Zone_enable_cross_context_check = true;
|
|
import 'babel-polyfill';
|
|
import 'zone.js';
|
|
|
|
const safeStringify = require('fast-safe-stringify');
|
|
|
|
/**
|
|
* Function to stringify data between browser and selenium
|
|
* It works fine for circular dependency
|
|
* @param obj
|
|
* @return {*|string}
|
|
* @constructor
|
|
*/
|
|
function JSONSafeStringify(obj) {
|
|
return safeStringify(
|
|
obj,
|
|
function replacer(key, value) {
|
|
// Remove the circular structure
|
|
if (value === '[Circular]') {
|
|
return;
|
|
}
|
|
return value;
|
|
},
|
|
2,
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Function helper to mark action on page as finished. This way selenium understands that test is finished
|
|
*/
|
|
function OTELSeleniumDone() {
|
|
const element = document.createElement('div');
|
|
element.setAttribute('id', 'otelSeleniumDone');
|
|
element.innerHTML = 'OTELSeleniumDone';
|
|
window.setTimeout(() => {
|
|
document.body.appendChild(element);
|
|
}, 1000);
|
|
}
|
|
|
|
window.otel = Object.assign({}, window.otel, {
|
|
JSONSafeStringify: JSONSafeStringify,
|
|
OTELSeleniumDone: OTELSeleniumDone,
|
|
});
|