opentelemetry-js/selenium-tests/pages/helper.js

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,
});