Update ui-test video

This commit is contained in:
Thomas Nordquist
2019-06-18 14:49:48 +02:00
parent d92ea0bad7
commit de7b461b4e
6 changed files with 95 additions and 15 deletions

View File

@@ -1,7 +1,39 @@
import { Browser, Element } from 'webdriverio'
import { clickOn, clickOnHistory, expandTopic, sleep, writeText } from '../util'
import { moveToCenterOfElement, clickOn, clickOnHistory, expandTopic, sleep, writeText } from '../util'
export async function showNumericPlot(browser: Browser) {
await expandTopic('kitchen/coffee_maker', browser)
let heater = await valuePreviewGuttersShowChartIcon('heater', browser)
await moveToCenterOfElement(heater, browser)
await sleep(1000)
// Refocus
heater = await valuePreviewGuttersShowChartIcon('heater', browser)
await heater.click()
let temperature = await valuePreviewGuttersShowChartIcon('temperature', browser)
await moveToCenterOfElement(temperature, browser)
temperature = await valuePreviewGuttersShowChartIcon('temperature', browser)
await temperature.click()
await sleep(1000)
await chartSettings('heater', browser)
await clickOnMenuPoint('Curve interpolation', browser)
await clickOnMenuPoint('step after', browser)
await clickAway('heater', browser)
await chartSettings('temperature', browser)
await clickOnMenuPoint('Curve interpolation', browser)
await clickOnMenuPoint('cubic basis spline', browser)
await clickAway('temperature', browser)
await sleep(2500)
await browser.saveScreenshot('screen_chart_panel.png')
await removeChart('heater', browser)
await sleep(750)
await removeChart('temperature', browser)
await sleep(750)
await expandTopic('livingroom/temperature', browser)
await clickOnHistory(browser)
@@ -9,3 +41,36 @@ export async function showNumericPlot(browser: Browser) {
await sleep(1000)
await expandTopic('livingroom/humidity', browser)
}
async function valuePreviewGuttersShowChartIcon(name: string, browser: Browser) {
for (let retries = 0; retries < 2; retries += 1) {
try {
return await browser.$(`//*[contains(@data-test-type, "ShowChart")][contains(@data-test, "${name}")]`)
} catch {
// ignore
}
}
return await browser.$(`//*[contains(@data-test-type, "ShowChart")][contains(@data-test, "${name}")]`)
}
async function chartSettings(name: string, browser: Browser) {
const settings = await browser.$(`//*[contains(@data-test-type, "ChartSettings")][contains(@data-test, "${name}")]`)
return await clickOn(settings, browser)
}
async function clickAway(name: string, browser: Browser) {
const settings = await browser.$(`//*[contains(@data-test-type, "ChartPaper")][contains(@data-test, "${name}")]`)
await moveToCenterOfElement(settings, browser)
const awayClickElement = await browser.$('//div[contains(@role, "presentation")]')
return awayClickElement.click()
}
async function removeChart(name: string, browser: Browser) {
const remove = await browser.$(`//*[contains(@data-test-type, "RemoveChart")][contains(@data-test, "${name}")]`)
return await clickOn(remove, browser)
}
async function clickOnMenuPoint(name: string, browser: Browser) {
const item = await browser.$(`//li[contains(text(), "${name}")]`)
return clickOn(item, browser)
}