Add UI tests
This commit is contained in:
15
src/spec/scenarios/clearOldTopics.ts
Normal file
15
src/spec/scenarios/clearOldTopics.ts
Normal 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)
|
||||
}
|
||||
}
|
||||
20
src/spec/scenarios/connect.ts
Normal file
20
src/spec/scenarios/connect.ts
Normal 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)
|
||||
}
|
||||
7
src/spec/scenarios/copyTopicToClipboard.ts
Normal file
7
src/spec/scenarios/copyTopicToClipboard.ts
Normal 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)
|
||||
}
|
||||
7
src/spec/scenarios/copyValueToClipboard.ts
Normal file
7
src/spec/scenarios/copyValueToClipboard.ts
Normal 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)
|
||||
}
|
||||
8
src/spec/scenarios/searchTree.ts
Normal file
8
src/spec/scenarios/searchTree.ts
Normal 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)
|
||||
}
|
||||
8
src/spec/scenarios/showJsonPreview.ts
Normal file
8
src/spec/scenarios/showJsonPreview.ts
Normal 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)
|
||||
}
|
||||
21
src/spec/scenarios/showMenu.ts
Normal file
21
src/spec/scenarios/showMenu.ts
Normal 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)
|
||||
}
|
||||
12
src/spec/scenarios/showNumericPlot.ts
Normal file
12
src/spec/scenarios/showNumericPlot.ts
Normal 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)
|
||||
}
|
||||
Reference in New Issue
Block a user