fix certificate selection
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { autoUpdater, UpdateInfo } from 'electron-updater'
|
||||
import { BuildInfo } from 'electron-telemetry/build/Model'
|
||||
// import { BuildInfo } from 'electron-telemetry/build/Model'
|
||||
|
||||
export function shouldAutoUpdate(build: BuildInfo) {
|
||||
export function shouldAutoUpdate(build: any) {
|
||||
return (
|
||||
build.package !== 'portable' &&
|
||||
build.package !== 'appx' &&
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import * as fs from 'fs'
|
||||
import * as path from 'path'
|
||||
import { BuildInfo } from 'electron-telemetry/build/Model'
|
||||
// import { BuildInfo } from 'electron-telemetry/build/Model'
|
||||
|
||||
let buildOptions: BuildInfo = {
|
||||
let buildOptions: any = {
|
||||
platform: process.platform,
|
||||
package: 'unpacked',
|
||||
} as any
|
||||
|
||||
@@ -1,23 +1,34 @@
|
||||
import * as log from 'electron-log'
|
||||
import * as path from 'path'
|
||||
import ConfigStorage from '../backend/src/ConfigStorage'
|
||||
import { app, BrowserWindow, Menu } from 'electron'
|
||||
import { ipcMain, app, BrowserWindow, Menu, dialog } from 'electron'
|
||||
import { autoUpdater } from 'electron-updater'
|
||||
import { ConnectionManager } from '../backend/src/index'
|
||||
import { electronTelemetryFactory } from 'electron-telemetry'
|
||||
// import { electronTelemetryFactory } from 'electron-telemetry'
|
||||
import { menuTemplate } from './MenuTemplate'
|
||||
import buildOptions from './buildOptions'
|
||||
import { waitForDevServer, isDev, runningUiTestOnCi, loadDevTools } from './development'
|
||||
import { shouldAutoUpdate, handleAutoUpdate } from './autoUpdater'
|
||||
import { registerCrashReporter } from './registerCrashReporter'
|
||||
import { backendEvents, EventDispatcher, OpenDialogRequest, openDialogResponse, OpenDialogResponse, requestOpenDialog } from '../events'
|
||||
|
||||
registerCrashReporter()
|
||||
|
||||
if (!isDev() && !runningUiTestOnCi()) {
|
||||
const electronTelemetry = electronTelemetryFactory('9b0c8ca04a361eb8160d98c5', buildOptions)
|
||||
}
|
||||
// if (!isDev() && !runningUiTestOnCi()) {
|
||||
// const electronTelemetry = electronTelemetryFactory('9b0c8ca04a361eb8160d98c5', buildOptions)
|
||||
// }
|
||||
|
||||
app.commandLine.appendSwitch('--no-sandbox')
|
||||
app.whenReady().then(() => {
|
||||
backendEvents.subscribe(requestOpenDialog(), async (request) => {
|
||||
let result = await dialog.showOpenDialog(BrowserWindow.getFocusedWindow() ?? BrowserWindow.getAllWindows()[0], request.options)
|
||||
|
||||
backendEvents.emit(openDialogResponse(), {
|
||||
identifier: request.identifier,
|
||||
result: result
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
autoUpdater.logger = log
|
||||
log.info('App starting...')
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Browser, Element } from 'webdriverio'
|
||||
import { clickOn, expandTopic, moveToCenterOfElement, sleep, writeText } from '../util'
|
||||
|
||||
export async function clearOldTopics(browser: Browser) {
|
||||
export async function clearOldTopics(browser: Browser<'async'>) {
|
||||
const topics = ['hello', 'test 123']
|
||||
for (const topic of topics) {
|
||||
await expandTopic(topic, browser)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Browser, Element } from 'webdriverio'
|
||||
import { clickOn, setTextInInput } from '../util'
|
||||
|
||||
export async function connectTo(host: string, browser: Browser) {
|
||||
export async function connectTo(host: string, browser: Browser<'async'>) {
|
||||
await setTextInInput('Host', host, browser)
|
||||
|
||||
await browser.saveScreenshot('screen1.png')
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Browser } from 'webdriverio'
|
||||
import { clickOn } from '../util'
|
||||
|
||||
export async function copyTopicToClipboard(browser: Browser) {
|
||||
export async function copyTopicToClipboard(browser: Browser<'async'>) {
|
||||
const copyButton = await browser.$('//span[contains(text(), "Topic")]//button')
|
||||
await clickOn(copyButton, browser, 1)
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Browser } from 'webdriverio'
|
||||
import { clickOn } from '../util'
|
||||
|
||||
export async function copyValueToClipboard(browser: Browser) {
|
||||
export async function copyValueToClipboard(browser: Browser<'async'>) {
|
||||
const copyButton = await browser.$('//span[contains(text(), "Value")]//button')
|
||||
await clickOn(copyButton, browser, 1)
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Browser, Element } from 'webdriverio'
|
||||
import { clickOn } from '../util'
|
||||
|
||||
export async function disconnect(browser: Browser) {
|
||||
export async function disconnect(browser: Browser<'async'>) {
|
||||
const disconnectButton = await browser.$('//button/span[contains(text(),"Disconnect")]')
|
||||
await clickOn(disconnectButton, browser)
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import {
|
||||
showText,
|
||||
} from '../util'
|
||||
|
||||
export async function publishTopic(browser: Browser) {
|
||||
export async function publishTopic(browser: Browser<'async'>) {
|
||||
await expandTopic('kitchen/lamp/state', browser)
|
||||
const topicInput = await browser.$('//input[contains(@value,"kitchen/lamp/state")][1]')
|
||||
await clickOn(topicInput, browser)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Browser, Element } from 'webdriverio'
|
||||
import { clickOn } from '../util'
|
||||
|
||||
export async function reconnect(browser: Browser) {
|
||||
export async function reconnect(browser: Browser<'async'>) {
|
||||
const disconnectButton = await browser.$('//button/span[contains(text(),"Disconnect")]')
|
||||
await clickOn(disconnectButton, browser)
|
||||
const connectButton = await browser.$('//button/span[contains(text(),"Connect")]')
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
import { Browser, Element } from 'webdriverio'
|
||||
import { clickOn, deleteTextWithBackspaces, showText, sleep, writeText } from '../util'
|
||||
|
||||
export async function searchTree(text: string, browser: Browser) {
|
||||
export async function searchTree(text: string, browser: Browser<'async'>) {
|
||||
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<'async'>) {
|
||||
const searchField = await browser.$('//input[contains(@placeholder, "Search")]')
|
||||
await clickOn(searchField, browser, 1)
|
||||
await deleteTextWithBackspaces(searchField, browser, 100)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Browser } from 'webdriverio'
|
||||
import { clickOn, sleep, setInputText } from '../util'
|
||||
|
||||
export async function showAdvancedConnectionSettings(browser: Browser) {
|
||||
export async function showAdvancedConnectionSettings(browser: Browser<'async'>) {
|
||||
const advancedSettingsButton = await browser.$('//button/span[contains(text(),"Advanced")]')
|
||||
const addButton = await browser.$('//button/span[contains(text(),"Add")]')
|
||||
const topicInput = await browser.$('//*[contains(@class, "advanced-connection-settings-topic-input")]//input')
|
||||
@@ -24,7 +24,7 @@ export async function showAdvancedConnectionSettings(browser: Browser) {
|
||||
await clickOn(connectButton, browser)
|
||||
}
|
||||
|
||||
async function deleteFirstSubscribedTopic(browser: Browser) {
|
||||
async function deleteFirstSubscribedTopic(browser: Browser<'async'>) {
|
||||
const deleteButton = await browser.$('.advanced-connection-settings-topic-list button')
|
||||
await clickOn(deleteButton, browser)
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Browser, Element } from 'webdriverio'
|
||||
import { expandTopic, sleep } from '../util'
|
||||
|
||||
export async function showJsonPreview(browser: Browser) {
|
||||
export async function showJsonPreview(browser: Browser<'async'>) {
|
||||
await expandTopic('actuality/showcase', browser)
|
||||
await browser.saveScreenshot('screen3.png')
|
||||
await sleep(1000)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Browser } from 'webdriverio'
|
||||
import { clickOn, showText, sleep } from '../util'
|
||||
|
||||
export async function showMenu(browser: Browser) {
|
||||
export async function showMenu(browser: Browser<'async'>) {
|
||||
const menuButton = await browser.$('//button[contains(@aria-label, "Menu")]')
|
||||
await clickOn(menuButton, browser)
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Browser, Element } from 'webdriverio'
|
||||
import { moveToCenterOfElement, clickOn, clickOnHistory, expandTopic, sleep, writeText } from '../util'
|
||||
|
||||
export async function showNumericPlot(browser: Browser) {
|
||||
export async function showNumericPlot(browser: Browser<'async'>) {
|
||||
await expandTopic('kitchen/coffee_maker', browser)
|
||||
let heater = await valuePreviewGuttersShowChartIcon('heater', browser)
|
||||
await moveToCenterOfElement(heater, browser)
|
||||
@@ -42,7 +42,7 @@ export async function showNumericPlot(browser: Browser) {
|
||||
await clickOnHistory(browser)
|
||||
}
|
||||
|
||||
async function valuePreviewGuttersShowChartIcon(name: string, browser: Browser) {
|
||||
async function valuePreviewGuttersShowChartIcon(name: string, browser: Browser<'async'>) {
|
||||
for (let retries = 0; retries < 2; retries += 1) {
|
||||
try {
|
||||
return await browser.$(`//*[contains(@data-test-type, "ShowChart")][contains(@data-test, "${name}")]`)
|
||||
@@ -53,23 +53,23 @@ async function valuePreviewGuttersShowChartIcon(name: string, browser: Browser)
|
||||
return browser.$(`//*[contains(@data-test-type, "ShowChart")][contains(@data-test, "${name}")]`)
|
||||
}
|
||||
|
||||
async function chartSettings(name: string, browser: Browser) {
|
||||
async function chartSettings(name: string, browser: Browser<'async'>) {
|
||||
const settings = await browser.$(`//*[contains(@data-test-type, "ChartSettings")][contains(@data-test, "${name}")]`)
|
||||
return clickOn(settings, browser)
|
||||
}
|
||||
|
||||
async function clickAway(name: string, browser: Browser) {
|
||||
async function clickAway(name: string, browser: Browser<'async'>) {
|
||||
const settings = await browser.$(`//*[contains(@data-test-type, "ChartPaper")][contains(@data-test, "${name}")]`)
|
||||
await moveToCenterOfElement(settings, browser)
|
||||
await browser.keys(['Escape'])
|
||||
}
|
||||
|
||||
async function removeChart(name: string, browser: Browser) {
|
||||
async function removeChart(name: string, browser: Browser<'async'>) {
|
||||
const remove = await browser.$(`//*[contains(@data-test-type, "RemoveChart")][contains(@data-test, "${name}")]`)
|
||||
return clickOn(remove, browser)
|
||||
}
|
||||
|
||||
async function clickOnMenuPoint(name: string, browser: Browser) {
|
||||
async function clickOnMenuPoint(name: string, browser: Browser<'async'>) {
|
||||
const item = await browser.$(`//li/span[contains(text(), "${name}")]`)
|
||||
return clickOn(item, browser)
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ import { Browser, Element } from 'webdriverio'
|
||||
import { clickOn, showText, sleep } from '../util'
|
||||
|
||||
// Expects a topic with at least two messages to be selected
|
||||
export async function showOffDiffCapability(browser: Browser) {
|
||||
export async function showOffDiffCapability(browser: Browser<'async'>) {
|
||||
await showText('Compare messages', 2000, browser, 'top')
|
||||
|
||||
await showText('Show raw message', 2000, browser, 'bottom')
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Browser, Element } from 'webdriverio'
|
||||
import { showKeys, showText, sleep } from '../util'
|
||||
|
||||
export async function showZoomLevel(browser: Browser) {
|
||||
export async function showZoomLevel(browser: Browser<'async'>) {
|
||||
await showKeys('Zoom in', 2000, browser, 'top', ['Ctrl', '+'])
|
||||
await sleep(2000)
|
||||
await showKeys('Zoom out', 2000, browser, 'middle', ['Ctrl', '-'])
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { clickOn } from './'
|
||||
import { Browser, Element } from 'webdriverio'
|
||||
|
||||
export async function expandTopic(path: string, browser: Browser) {
|
||||
export async function expandTopic(path: string, browser: Browser<'async'>) {
|
||||
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: Array<string>, browser: Browser) {
|
||||
async function topicMatches(topics: Array<string>, browser: Browser<'async'>) {
|
||||
const result = await browser.$(topicSelector(topics))
|
||||
return result.isExisting()
|
||||
}
|
||||
|
||||
@@ -18,7 +18,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<'async'>, delay = 0) {
|
||||
if (fast) {
|
||||
return browser.keys(text.split(''))
|
||||
}
|
||||
@@ -29,7 +29,7 @@ export async function writeText(text: string, browser: Browser, delay = 0) {
|
||||
}
|
||||
}
|
||||
|
||||
export async function deleteTextWithBackspaces(element: Element, browser: Browser, delay = 0, count = 0) {
|
||||
export async function deleteTextWithBackspaces(element: Element<'async'>, browser: Browser<'async'>, 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'])
|
||||
@@ -37,13 +37,13 @@ export async function deleteTextWithBackspaces(element: Element, browser: Browse
|
||||
}
|
||||
}
|
||||
|
||||
export async function setInputText(input: Element, text: string, browser: Browser) {
|
||||
export async function setInputText(input: Element<'async'>, text: string, browser: Browser<'async'>) {
|
||||
await clickOn(input, browser, 1)
|
||||
await deleteTextWithBackspaces(input, browser)
|
||||
await input.setValue(text)
|
||||
}
|
||||
|
||||
export async function setTextInInput(name: string, text: string, browser: Browser) {
|
||||
export async function setTextInInput(name: string, text: string, browser: Browser<'async'>) {
|
||||
const input = await browser.$(`//label[contains(text(), "${name}")]/..//input`)
|
||||
await clickOn(input, browser, 1)
|
||||
await browser.$(`//label[contains(text(), "${name}")]/..//input`)
|
||||
@@ -52,7 +52,7 @@ export async function setTextInInput(name: string, text: string, browser: Browse
|
||||
await input.setValue(text)
|
||||
}
|
||||
|
||||
export async function moveToCenterOfElement(element: Element, browser: Browser) {
|
||||
export async function moveToCenterOfElement(element: Element<'async'>, browser: Browser<'async'>) {
|
||||
const { x, y } = await element.getLocation()
|
||||
const { width, height } = await element.getSize()
|
||||
|
||||
@@ -69,12 +69,12 @@ export async function moveToCenterOfElement(element: Element, browser: Browser)
|
||||
await element.moveTo()
|
||||
}
|
||||
|
||||
export async function clickOnHistory(browser: Browser) {
|
||||
export async function clickOnHistory(browser: Browser<'async'>) {
|
||||
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<'async'>, browser: Browser<'async'>, clicks = 1) {
|
||||
await moveToCenterOfElement(element, browser)
|
||||
for (let i = 0; i < clicks; i += 1) {
|
||||
await element.click()
|
||||
@@ -82,7 +82,7 @@ export async function clickOn(element: Element, browser: Browser, clicks = 1) {
|
||||
}
|
||||
}
|
||||
|
||||
export async function createFakeMousePointer(browser: Browser) {
|
||||
export async function createFakeMousePointer(browser: Browser<'async'>) {
|
||||
const js = 'window.demo.enableMouse();'
|
||||
|
||||
await browser.execute(js)
|
||||
@@ -91,7 +91,7 @@ export async function createFakeMousePointer(browser: Browser) {
|
||||
export async function showText(
|
||||
text: string,
|
||||
duration: number = 0,
|
||||
browser: Browser,
|
||||
browser: Browser<'async'>,
|
||||
location: 'top' | 'bottom' | 'middle' = 'bottom',
|
||||
keys = []
|
||||
) {
|
||||
@@ -102,7 +102,7 @@ export async function showText(
|
||||
|
||||
type HeapDump = any
|
||||
|
||||
export async function getHeapDump(browser: Browser): Promise<HeapDump> {
|
||||
export async function getHeapDump(browser: Browser<'async'>): Promise<HeapDump> {
|
||||
const filename = 'heapdump.json'
|
||||
const js = `window.demo.writeHeapdump('${filename}');`
|
||||
await browser.execute(js)
|
||||
@@ -125,7 +125,7 @@ export async function countInstancesOf(heapDump: HeapDump, className: ClassNameM
|
||||
export async function showKeys(
|
||||
text: string,
|
||||
duration: number = 0,
|
||||
browser: Browser,
|
||||
browser: Browser<'async'>,
|
||||
location: 'top' | 'bottom' | 'middle' = 'bottom',
|
||||
keys: Array<string> = []
|
||||
) {
|
||||
@@ -134,7 +134,7 @@ export async function showKeys(
|
||||
await browser.execute(js)
|
||||
}
|
||||
|
||||
export async function hideText(browser: Browser) {
|
||||
export async function hideText(browser: Browser<'async'>) {
|
||||
const js = 'window.demo.hideMessage();'
|
||||
await browser.execute(js)
|
||||
await sleep(600)
|
||||
|
||||
Reference in New Issue
Block a user