Add UI tests

This commit is contained in:
Thomas Nordquist
2019-01-28 22:40:52 +01:00
parent 2822f98103
commit d11337fda2
17 changed files with 2835 additions and 63 deletions

View File

@@ -0,0 +1,15 @@
import { clickOn, sleep, writeText, expandTopic, moveToCenterOfElement } from '../util'
import { Browser } from 'webdriverio'
export async function clearOldTopics(browser: Browser<void>) {
const topics = ['hello', 'test 123']
for (const topic of topics) {
await expandTopic(topic, browser)
await sleep(1000)
const deleteButton = await browser.$('//button[contains(@title, "Delete retained topic")]')
await moveToCenterOfElement(deleteButton, browser)
await clickOn(deleteButton, browser)
await sleep(700)
}
}

View File

@@ -0,0 +1,20 @@
import { clickOn, sleep, writeText } from '../util'
import { Browser } from 'webdriverio'
export async function connectTo(host: string, browser: Browser<void>) {
await writeTextToInput('Host', host, browser)
await writeTextToInput('Username', 'thomas', browser, false)
await writeTextToInput('Password', 'bierbier', browser, false)
const connectButton = await browser.$('//button/span[contains(text(),"Connect")]')
clickOn(connectButton, browser)
}
async function writeTextToInput(name: string, text: string, browser: Browser<void>, wait: boolean = true) {
const input = await browser.$(`//label[contains(text(), "${name}")]/..//input`)
await clickOn(input, browser, 1)
wait && await sleep(500)
input.clearValue()
wait && await sleep(300)
await writeText(text, browser)
}

View File

@@ -0,0 +1,7 @@
import { clickOn, sleep, writeText, expandTopic } from '../util'
import { Browser } from 'webdriverio'
export async function copyTopicToClipboard(browser: Browser<void>) {
const copyButton = await browser.$('//p[contains(text(), "Topic")]/span')
await clickOn(copyButton, browser, 1)
}

View File

@@ -0,0 +1,7 @@
import { clickOn, sleep, writeText, expandTopic } from '../util'
import { Browser } from 'webdriverio'
export async function copyValueToClipboard(browser: Browser<void>) {
const copyButton = await browser.$('//p[contains(text(), "Value")]/span')
await clickOn(copyButton, browser, 1)
}

View File

@@ -0,0 +1,8 @@
import { clickOn, sleep, writeText } from '../util'
import { Browser } from 'webdriverio'
export async function searchTree(browser: Browser<void>) {
const searchField = await browser.$('//input[contains(@placeholder, "Search")]')
await clickOn(searchField, browser, 1)
writeText('temp', browser)
}

View File

@@ -0,0 +1,8 @@
import { clickOn, sleep, writeText, expandTopic } from '../util'
import { Browser } from 'webdriverio'
export async function showJsonPreview(browser: Browser<void>) {
await expandTopic('3d-printer/OctoPrint/temperature/bed', browser)
await sleep(1000)
}

View File

@@ -0,0 +1,21 @@
import { clickOn, sleep, writeText, expandTopic, moveToCenterOfElement } from '../util'
import { Browser } from 'webdriverio'
export async function showMenu(browser: Browser<void>) {
const menuButton = await browser.$('//button[contains(@aria-label, "Menu")]')
await clickOn(menuButton, browser)
const brokerStatistics = await browser.$('//div[contains(@class, "BrokerStatistics")]/div[4]')
moveToCenterOfElement(brokerStatistics, browser)
await sleep(2000)
const topicOrder = await browser.$('#select-node-order')
await clickOn(topicOrder, browser)
await sleep(1000)
const alphabetically = await browser.$('//li[contains(@data-value, "abc")]')
await clickOn(alphabetically, browser)
await sleep(2000)
await clickOn(menuButton, browser)
}

View File

@@ -0,0 +1,12 @@
import { clickOn, sleep, writeText, expandTopic } from '../util'
import { Browser } from 'webdriverio'
export async function showNumericPlot(browser: Browser<void>) {
await expandTopic('livingroom/temperature', browser)
const messageHistory = await browser.$('//span/*[contains(text(), "History")]')
await clickOn(messageHistory, browser, 1)
await sleep(1000)
await expandTopic('livingroom/humidity', browser)
}