From fe16eabb6b2ab7c1cd3a8f9734553dd1ab7ff819 Mon Sep 17 00:00:00 2001 From: Thomas Nordquist Date: Tue, 28 May 2019 11:00:06 +0200 Subject: [PATCH] Adapt to newer webdriver api --- src/spec/scenarios/clearOldTopics.ts | 2 +- src/spec/scenarios/connect.ts | 2 +- src/spec/scenarios/copyTopicToClipboard.ts | 2 +- src/spec/scenarios/copyValueToClipboard.ts | 2 +- src/spec/scenarios/disconnect.ts | 2 +- src/spec/scenarios/publishTopic.ts | 2 +- src/spec/scenarios/reconnect.ts | 2 +- src/spec/scenarios/searchTree.ts | 4 ++-- .../showAdvancedConnectionSettings.ts | 4 ++-- src/spec/scenarios/showJsonFormatting.ts | 2 +- src/spec/scenarios/showJsonPreview.ts | 2 +- src/spec/scenarios/showMenu.ts | 2 +- src/spec/scenarios/showNumericPlot.ts | 2 +- src/spec/scenarios/showOffDiffCapability.ts | 2 +- src/spec/scenarios/showZoomLevel.ts | 2 +- src/spec/util/expandTopic.ts | 4 ++-- src/spec/util/index.ts | 22 +++++++++---------- 17 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/spec/scenarios/clearOldTopics.ts b/src/spec/scenarios/clearOldTopics.ts index 7c36582..657832a 100644 --- a/src/spec/scenarios/clearOldTopics.ts +++ b/src/spec/scenarios/clearOldTopics.ts @@ -1,7 +1,7 @@ import { clickOn, sleep, writeText, expandTopic, moveToCenterOfElement } from '../util' import { Browser } from 'webdriverio' -export async function clearOldTopics(browser: Browser) { +export async function clearOldTopics(browser: Browser) { const topics = ['hello', 'test 123'] for (const topic of topics) { await expandTopic(topic, browser) diff --git a/src/spec/scenarios/connect.ts b/src/spec/scenarios/connect.ts index acbca6f..6ec9138 100644 --- a/src/spec/scenarios/connect.ts +++ b/src/spec/scenarios/connect.ts @@ -1,7 +1,7 @@ import { clickOn, writeTextToInput } from '../util' import { Browser } from 'webdriverio' -export async function connectTo(host: string, browser: Browser) { +export async function connectTo(host: string, browser: Browser) { await writeTextToInput('Host', host, browser) await writeTextToInput('Username', 'thomas', browser, false) await writeTextToInput('Password', 'bierbier', browser, false) diff --git a/src/spec/scenarios/copyTopicToClipboard.ts b/src/spec/scenarios/copyTopicToClipboard.ts index 4b9749b..c94e0d5 100644 --- a/src/spec/scenarios/copyTopicToClipboard.ts +++ b/src/spec/scenarios/copyTopicToClipboard.ts @@ -1,7 +1,7 @@ import { clickOn } from '../util' import { Browser } from 'webdriverio' -export async function copyTopicToClipboard(browser: Browser) { +export async function copyTopicToClipboard(browser: Browser) { const copyButton = await browser.$('//p[contains(text(), "Topic")]/span') await clickOn(copyButton, browser, 1) } diff --git a/src/spec/scenarios/copyValueToClipboard.ts b/src/spec/scenarios/copyValueToClipboard.ts index 8634a21..ffa5af4 100644 --- a/src/spec/scenarios/copyValueToClipboard.ts +++ b/src/spec/scenarios/copyValueToClipboard.ts @@ -1,7 +1,7 @@ import { clickOn, sleep, writeText, expandTopic } from '../util' import { Browser } from 'webdriverio' -export async function copyValueToClipboard(browser: Browser) { +export async function copyValueToClipboard(browser: Browser) { const copyButton = await browser.$('//p[contains(text(), "Value")]/span') await clickOn(copyButton, browser, 1) } diff --git a/src/spec/scenarios/disconnect.ts b/src/spec/scenarios/disconnect.ts index ff20be4..1dcda41 100644 --- a/src/spec/scenarios/disconnect.ts +++ b/src/spec/scenarios/disconnect.ts @@ -1,7 +1,7 @@ import { clickOn } from '../util' import { Browser } from 'webdriverio' -export async function disconnect(browser: Browser) { +export async function disconnect(browser: Browser) { const disconnectButton = await browser.$('//button/span[contains(text(),"Disconnect")]') await clickOn(disconnectButton, browser) } diff --git a/src/spec/scenarios/publishTopic.ts b/src/spec/scenarios/publishTopic.ts index b7c0958..e42f2a8 100644 --- a/src/spec/scenarios/publishTopic.ts +++ b/src/spec/scenarios/publishTopic.ts @@ -1,7 +1,7 @@ import { clickOn, sleep, writeText, delteTextWithBackspaces, expandTopic, moveToCenterOfElement, showText } from '../util' import { Browser } from 'webdriverio' -export async function publishTopic(browser: Browser) { +export async function publishTopic(browser: Browser) { await expandTopic('kitchen/lamp/state', browser) const topicInput = await browser.$('//textarea[contains(text(),"kitchen/lamp/state")][2]') await clickOn(topicInput, browser) diff --git a/src/spec/scenarios/reconnect.ts b/src/spec/scenarios/reconnect.ts index 3b610d3..ce51fe6 100644 --- a/src/spec/scenarios/reconnect.ts +++ b/src/spec/scenarios/reconnect.ts @@ -1,7 +1,7 @@ import { clickOn } from '../util' import { Browser } from 'webdriverio' -export async function reconnect(browser: Browser) { +export async function reconnect(browser: Browser) { const disconnectButton = await browser.$('//button/span[contains(text(),"Disconnect")]') await clickOn(disconnectButton, browser) const connectButton = await browser.$('//button/span[contains(text(),"Connect")]') diff --git a/src/spec/scenarios/searchTree.ts b/src/spec/scenarios/searchTree.ts index a254249..63df210 100644 --- a/src/spec/scenarios/searchTree.ts +++ b/src/spec/scenarios/searchTree.ts @@ -1,14 +1,14 @@ import { clickOn, sleep, writeText, delteTextWithBackspaces, showText } from '../util' import { Browser } from 'webdriverio' -export async function searchTree(text: string, browser: Browser) { +export async function searchTree(text: string, browser: Browser) { const searchField = await browser.$('//input[contains(@placeholder, "Search")]') await clickOn(searchField, browser, 1) await writeText(text, browser, 100) await sleep(1500) } -export async function clearSearch(browser: Browser) { +export async function clearSearch(browser: Browser) { const searchField = await browser.$('//input[contains(@placeholder, "Search")]') await clickOn(searchField, browser, 1) await delteTextWithBackspaces(searchField, browser, 100) diff --git a/src/spec/scenarios/showAdvancedConnectionSettings.ts b/src/spec/scenarios/showAdvancedConnectionSettings.ts index 81d696d..24cbe01 100644 --- a/src/spec/scenarios/showAdvancedConnectionSettings.ts +++ b/src/spec/scenarios/showAdvancedConnectionSettings.ts @@ -1,7 +1,7 @@ import { clickOn, writeTextToInput, sleep } from '../util' import { Browser } from 'webdriverio' -export async function showAdvancedConnectionSettings(browser: Browser) { +export async function showAdvancedConnectionSettings(browser: Browser) { const advancedSettingsButton = await browser.$('//button/span[contains(text(),"Advanced")]') const addButton = await browser.$('//button/span[contains(text(),"Add")]') @@ -23,7 +23,7 @@ export async function showAdvancedConnectionSettings(browser: Browser) { await clickOn(connectButton, browser) } -async function deleteFirstSubscribedTopic(browser: Browser) { +async function deleteFirstSubscribedTopic(browser: Browser) { const deleteButton = await browser.$('.advanced-connection-settings-topic-list button') await clickOn(deleteButton, browser) } diff --git a/src/spec/scenarios/showJsonFormatting.ts b/src/spec/scenarios/showJsonFormatting.ts index 037ea04..d913f60 100644 --- a/src/spec/scenarios/showJsonFormatting.ts +++ b/src/spec/scenarios/showJsonFormatting.ts @@ -4,7 +4,7 @@ import { sleep } from '../util' -export async function showJsonFormatting(browser: Browser) { +export async function showJsonFormatting(browser: Browser) { const editor = await browser.$('//*[contains(@class, "ace_editor")]') const formatJsonButton = await browser.$('#sidebar-publish-format-json') const payloadInput = await browser.$('//*[contains(@class, "ace_text-input")]') diff --git a/src/spec/scenarios/showJsonPreview.ts b/src/spec/scenarios/showJsonPreview.ts index 3ac79be..9744f05 100644 --- a/src/spec/scenarios/showJsonPreview.ts +++ b/src/spec/scenarios/showJsonPreview.ts @@ -1,7 +1,7 @@ import { Browser } from 'webdriverio' import { expandTopic, sleep } from '../util' -export async function showJsonPreview(browser: Browser) { +export async function showJsonPreview(browser: Browser) { await expandTopic('actuality/showcase', browser) await browser.saveScreenshot('screen3.png') await sleep(1000) diff --git a/src/spec/scenarios/showMenu.ts b/src/spec/scenarios/showMenu.ts index 9a1c35c..897b3d5 100644 --- a/src/spec/scenarios/showMenu.ts +++ b/src/spec/scenarios/showMenu.ts @@ -1,7 +1,7 @@ import { clickOn, sleep, writeText, expandTopic, moveToCenterOfElement, showText } from '../util' import { Browser } from 'webdriverio' -export async function showMenu(browser: Browser) { +export async function showMenu(browser: Browser) { const menuButton = await browser.$('//button[contains(@aria-label, "Menu")]') await clickOn(menuButton, browser) diff --git a/src/spec/scenarios/showNumericPlot.ts b/src/spec/scenarios/showNumericPlot.ts index 9eeef82..7b81980 100644 --- a/src/spec/scenarios/showNumericPlot.ts +++ b/src/spec/scenarios/showNumericPlot.ts @@ -1,7 +1,7 @@ import { clickOn, sleep, writeText, expandTopic, clickOnHistory } from '../util' import { Browser } from 'webdriverio' -export async function showNumericPlot(browser: Browser) { +export async function showNumericPlot(browser: Browser) { await expandTopic('livingroom/temperature', browser) await clickOnHistory(browser) diff --git a/src/spec/scenarios/showOffDiffCapability.ts b/src/spec/scenarios/showOffDiffCapability.ts index 8862846..481f21c 100644 --- a/src/spec/scenarios/showOffDiffCapability.ts +++ b/src/spec/scenarios/showOffDiffCapability.ts @@ -2,7 +2,7 @@ import { clickOn, sleep, showText } from '../util' import { Browser } from 'webdriverio' // Expects a topic with at least two messages to be selected -export async function showOffDiffCapability(browser: Browser) { +export async function showOffDiffCapability(browser: Browser) { await showText('Compare messages', 2000, browser, 'top') await showText('Show raw message', 2000, browser, 'bottom') diff --git a/src/spec/scenarios/showZoomLevel.ts b/src/spec/scenarios/showZoomLevel.ts index 5f4f467..c385eab 100644 --- a/src/spec/scenarios/showZoomLevel.ts +++ b/src/spec/scenarios/showZoomLevel.ts @@ -1,7 +1,7 @@ import { sleep, showKeys, showText } from '../util' import { Browser } from 'webdriverio' -export async function showZoomLevel(browser: Browser) { +export async function showZoomLevel(browser: Browser) { await showKeys('Zoom in', 2000, browser, 'top', ['Ctrl', '+']) await sleep(2000) await showKeys('Zoom out', 2000, browser, 'middle', ['Ctrl', '-']) diff --git a/src/spec/util/expandTopic.ts b/src/spec/util/expandTopic.ts index 0cf897d..656774c 100644 --- a/src/spec/util/expandTopic.ts +++ b/src/spec/util/expandTopic.ts @@ -1,7 +1,7 @@ import { Browser } from 'webdriverio' import { clickOn } from './' -export async function expandTopic(path: string, browser: Browser) { +export async function expandTopic(path: string, browser: Browser) { const originalTopics = path.split('/') let topics = path.split('/') while (topics.length > 0 && !await topicMatches(topics, browser)) { @@ -18,7 +18,7 @@ export async function expandTopic(path: string, browser: Browser) { } } -async function topicMatches(topics: string[], browser: Browser) { +async function topicMatches(topics: string[], browser: Browser) { const result = await browser.$(topicSelector(topics)) return result.isExisting() } diff --git a/src/spec/util/index.ts b/src/spec/util/index.ts index 7389cc5..5f11fae 100644 --- a/src/spec/util/index.ts +++ b/src/spec/util/index.ts @@ -17,7 +17,7 @@ export function sleep(ms: number, required = false) { }) } -export async function writeText(text: string, browser: Browser, delay = 0) { +export async function writeText(text: string, browser: Browser, delay = 0) { if (fast) { return browser.keys(text.split('')) } @@ -28,7 +28,7 @@ export async function writeText(text: string, browser: Browser, delay = 0) } } -export async function delteTextWithBackspaces(element: Element, browser: Browser, delay = 0, count = 0) { +export async function delteTextWithBackspaces(element: Element, browser: Browser, delay = 0, count = 0) { const length = count > 0 ? count : (await element.getValue()).length for (let i = 0; i < length; i += 1) { await browser.keys(['Backspace']) @@ -36,7 +36,7 @@ export async function delteTextWithBackspaces(element: Element, browser: B } } -export async function writeTextToInput(name: string, text: string, browser: Browser, wait: boolean = true) { +export async function writeTextToInput(name: string, text: string, browser: Browser, wait: boolean = true) { const input = await browser.$(`//label[contains(text(), "${name}")]/..//input`) await clickOn(input, browser, 1) wait && await sleep(500) @@ -45,7 +45,7 @@ export async function writeTextToInput(name: string, text: string, browser: Brow await writeText(text, browser) } -export async function moveToCenterOfElement(element: Element, browser: Browser) { +export async function moveToCenterOfElement(element: Element, browser: Browser) { const { x, y } = await element.getLocation() const { width, height } = await element.getSize() @@ -62,12 +62,12 @@ export async function moveToCenterOfElement(element: Element, browser: Bro await element.moveTo() } -export async function clickOnHistory(browser: Browser) { +export async function clickOnHistory(browser: Browser) { const messageHistory = await browser.$('//span/*[contains(text(), "History")]') await clickOn(messageHistory, browser) } -export async function clickOn(element: Element, browser: Browser, clicks = 1) { +export async function clickOn(element: Element, browser: Browser, clicks = 1) { await moveToCenterOfElement(element, browser) for (let i = 0; i < clicks; i += 1) { await element.click() @@ -75,13 +75,13 @@ export async function clickOn(element: Element, browser: Browser, cl } } -export async function createFakeMousePointer(browser: Browser) { +export async function createFakeMousePointer(browser: Browser) { const js = 'window.demo.enableMouse();' await browser.execute(js) } -export async function showText(text: string, duration: number = 0, browser: Browser, location: 'top' | 'bottom' | 'middle' = 'bottom', keys = []) { +export async function showText(text: string, duration: number = 0, browser: Browser, location: 'top' | 'bottom' | 'middle' = 'bottom', keys = []) { const js = `window.demo.showMessage('${text}', '${location}', ${duration});` await browser.execute(js) @@ -89,7 +89,7 @@ export async function showText(text: string, duration: number = 0, browser: Brow type HeapDump = any -export async function getHeapDump(browser: Browser): Promise { +export async function getHeapDump(browser: Browser): Promise { const filename = 'heapdump.json' const js = `window.demo.writeHeapdump('${filename}');` await browser.execute(js) @@ -111,13 +111,13 @@ export async function countInstancesOf(heapDump: HeapDump, className: ClassNameM .filter((s: string) => s === className).length } -export async function showKeys(text: string, duration: number = 0, browser: Browser, location: 'top' | 'bottom' | 'middle' = 'bottom', keys: string[] = []) { +export async function showKeys(text: string, duration: number = 0, browser: Browser, location: 'top' | 'bottom' | 'middle' = 'bottom', keys: string[] = []) { const js = `window.demo.showMessage('${text}', '${location}', ${duration}, ${JSON.stringify(keys)});` await browser.execute(js) } -export async function hideText(browser: Browser) { +export async function hideText(browser: Browser) { const js = 'window.demo.hideMessage();' await browser.execute(js) await sleep(600)