@sap_oss/wdio-qmate-service
Version:
[](https://api.reuse.software/info/github.com/SAP/wdio-qmate-service)[](http
113 lines (101 loc) • 4.3 kB
JavaScript
const { BASE_URL } = require("../../../../src/reuse/constants.ts");
describe("Test for ", function () {
this.beforeAll(async () => {
await browser.url("#/categories");
});
it("should fail with 'javascript error: circular reference/Converting circular structure to JSON'", async function () {
const ui5ControlProperties = {
"elementProperties": {
"metadata": "sap.m.StandardListItem", "mProperties": {
"viewId": "container-cart---app",
"title": [{ "path": "CategoryName" }],
"bindingContextPath": "/ProductCategories*"
}
}
};
const elem = await browser.uiControl(ui5ControlProperties);
await expect(elem.controlActionInBrowser(function (control, done) {
done(control.getBindingContext());
})).rejects.toThrow("javascript error: circular reference");
await expect(elem.controlActionInBrowser(function (control, done) {
done(JSON.stringify(control.getBindingContext()));
})).rejects.toThrow(/Converting circular structure to JSON/);
});
it("should access wrong element", async function () {
const ui5ControlProperties = {
"elementProperties": {
"metadata": "sap.m.StandardListItem",
"id": "*categoryList-79",
"bindingContextPath": "/ProductCategories('LT')"
}
};
const newText = "master";
// const elem = await browser.uiControl(ui5ControlProperties);
const selectorParams = { selector: ui5ControlProperties, index: 0, timeout: 3000 };
await expect(browser.controlActionInBrowser(function (control, txt, done) {
control.setTitle(txt);
done(control.getTitle());
}, selectorParams, newText)).rejects.toThrow(/No visible elements found/);
});
it("should use UI5 Control binding properties command on element level", async function () {
await browser.navigateTo(`${BASE_URL}/test-resources/sap/m/demokit/cart/webapp/index.html?sap-ui-theme=sap_fiori_3#/categories`);
const ui5ControlProperties = {
"elementProperties": {
"metadata": "sap.m.StandardListItem", "mProperties": {
"viewId": "container-cart---app",
"title": [{ "path": "CategoryName" }],
"bindingContextPath": "/ProductCategories*"
}
}
};
const elem = await browser.uiControl(ui5ControlProperties);
await expect(elem.controlActionInBrowser(function (control, done) {
done(control.getBindingContext().getPath());
})).resolves.toEqual("/ProductCategories('AC')");
});
it("should fire press (controlActionInBrowser on element level)", async function () {
const ui5ControlProperties = {
"elementProperties": {
"metadata": "sap.m.StandardListItem",
"id": "*categoryList-7",
"bindingContextPath": "/ProductCategories('LT')"
}
};
const elem = await browser.uiControl(ui5ControlProperties);
const newText = "test";
await expect(elem.controlActionInBrowser(function (control, txt, done) {
control.setTitle(txt);
done(control.getTitle());
}, newText)).resolves.toEqual(newText);
await expect(elem.controlActionInBrowser(function (control, done) {
const data = { title: control.getTitle() };
control.attachPress(data, function () {
done(data.title);
});
control.firePress();
})).resolves.toEqual(newText);
});
// ?
it.skip("should fire press (controlActionInBrowser on browser level)", async function () {
const ui5ControlProperties = {
"elementProperties": {
"metadata": "sap.m.StandardListItem",
"id": "*categoryList-7",
"bindingContextPath": "/ProductCategories('LT')"
}
};
const selectorParams = { selector: ui5ControlProperties, index: 0, timeout: 30000 };
const newText = "master";
await expect(browser.controlActionInBrowser(function (control, txt, done) {
control.setTitle(txt);
done(control.getTitle());
}, selectorParams, newText)).resolves.toEqual(newText);
await expect(browser.controlActionInBrowser(function (control, done) {
const data = { title: control.getTitle() };
control.attachPress(data, function () {
done(data.title);
});
control.firePress();
}, ui5ControlProperties)).resolves.toEqual(newText);
});
});