UNPKG

@sap_oss/wdio-qmate-service

Version:

[![REUSE status](https://api.reuse.software/badge/github.com/SAP/wdio-qmate-service)](https://api.reuse.software/info/github.com/SAP/wdio-qmate-service)[![Node.js CI](https://github.com/SAP/wdio-qmate-service/actions/workflows/node.js.yml/badge.svg)](http

140 lines (127 loc) 4.49 kB
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); }); });