Files
opencloud/settings/ui/tests/acceptance/pageobjects/settingsPage.js
Josh Soref 55667a3ab3 spelling
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2021-09-20 16:54:29 +05:45

84 lines
2.1 KiB
JavaScript

const { client } = require('nightwatch-api')
const util = require('util')
module.exports = {
url: function () {
return this.api.launchUrl + '/#/settings'
},
commands: {
navigateAndWaitTillLoaded: async function () {
const url = this.url()
await await this.navigate(url)
while (true) {
let found = false
await this.waitForElementVisible('@pageHeader', 2000, 500, false)
await this.api
.elements('@pageHeader', result => {
if (result.value.length) {
found = true
}
})
if (found) {
break
}
await client.refresh()
}
return this.waitForElementVisible('@pageHeader')
},
getSettingsValue: async function (key) {
let output
switch (key) {
case 'Language':
let elemfound = true
// Language value is set to empty at beginning
// In that case just return false
await this.api.element('@languageValue', result => {
if (result.status < 0) {
elemfound = false
}
})
if (!elemfound) {
output = false
break
}
await this.waitForElementVisible('@languageValue')
.getText('@languageValue', (result) => {
output = result.value
})
break
default:
throw new Error('failed to find the setting')
}
return output
},
changeSettings: async function (key, value) {
switch (key) {
case 'Language':
await this
.waitForElementVisible('@languageInput')
.setValue('@languageInput', value + '\n')
break
default:
throw new Error('failed to find the setting')
}
}
},
elements: {
pageHeader: {
selector: '.oc-page-title'
},
languageValue: {
selector: "//label[.='Language']/..//span[@class='vs__selected']",
locateStrategy: 'xpath'
},
languageInput: {
selector: "//label[.='Language']/..//input",
locateStrategy: 'xpath'
},
}
}