const { I } = inject();
|
const Helpers = require("../tests/helpers");
|
|
module.exports = {
|
init({ events = {}, ...params }) {
|
I.executeScript(Helpers.createLabelStudioInitFunction(params));
|
for (const [eventName, callback] of Object.entries(events)) {
|
this.on(eventName, callback);
|
}
|
|
const defaultCpuThrottling = process.env.DEFAULT_CPU_THROTTLING;
|
|
if (defaultCpuThrottling) {
|
I.wait(1); // gives some time to page to load
|
I.throttleCPU(+defaultCpuThrottling);
|
}
|
},
|
on(eventName, callback) {
|
I.executeScript(Helpers.createAddEventListenerScript(eventName, callback));
|
},
|
async serialize() {
|
const result = await I.executeScript(Helpers.serialize);
|
|
return result;
|
},
|
|
hasFF(fflag) {
|
return I.executeScript(Helpers.hasFF, fflag);
|
},
|
|
setFeatureFlagsDefaultValue(value) {
|
I.executeScript(Helpers.setFeatureFlagsDefaultValue, value);
|
},
|
|
setFeatureFlags(featureFlags) {
|
I.executeScript(Helpers.setFeatureFlags, featureFlags);
|
},
|
|
clearModalIfPresent() {
|
I.executeScript(Helpers.clearModalIfPresent);
|
},
|
|
async waitForObjectsReady() {
|
await I.executeScript(Helpers.waitForObjectsReady);
|
},
|
|
async resultsNotChanged(result, fractionDigits = 2) {
|
const serialized = await this.serialize();
|
|
I.assertDeepEqualWithTolerance(result, serialized, fractionDigits, "Results must be equal");
|
},
|
|
async resultsChanged(result, fractionDigits = 2) {
|
const serialized = await this.serialize();
|
|
I.assertNotDeepEqualWithTolerance(result, serialized, fractionDigits, "Results must be different");
|
},
|
|
async grabUserLabels() {
|
const userLabels = await I.executeScript(() => {
|
return Object.fromEntries(
|
Object.entries(window.Htx.userLabels?.controls).map(([control, labels]) => {
|
return [control, labels.map((label) => label.path)];
|
}),
|
);
|
});
|
|
return userLabels;
|
},
|
|
initUserLabels(userLabels) {
|
return I.executeScript((userLabels) => {
|
window.Htx.userLabels?.init(userLabels);
|
}, userLabels);
|
},
|
|
enableSetting(settingName) {
|
I.say("Attempting to open settings menu");
|
I.click("[aria-label=Settings]");
|
I.see("Settings");
|
I.say("Attempt to enable setting");
|
I.click(settingName);
|
I.seeCheckboxIsChecked(settingName);
|
I.click("[aria-label=Close]");
|
I.dontSee("Settings");
|
},
|
|
disableSetting(settingName) {
|
I.say("Attempting to open settings menu");
|
I.click("[aria-label=Settings]");
|
I.see("Settings");
|
I.say("Attempt to disable setting");
|
I.click(settingName);
|
I.seeCheckboxIsChecked(settingName);
|
I.click("[aria-label=Close]");
|
I.dontSee("Settings");
|
},
|
};
|