From b6583a42ba914fa8d7bd48ad7d4a30f783815bf2 Mon Sep 17 00:00:00 2001 From: Tibor Dancs Date: Mon, 4 Jul 2022 23:12:00 +0200 Subject: [PATCH 1/5] WIP: Starting a workspace from factory url with CheCode editor Signed-off-by: Tibor Dancs --- tests/e2e/mocha-java-springboot.json | 9 + .../pageobjects/dashboard/CreateWorkspace.ts | 10 +- tests/e2e/pageobjects/ide/ContextMenu.ts | 6 +- tests/e2e/pageobjects/ide/Editor.ts | 29 +- .../e2e/tests/devfiles/JavaSpringBoot.spec.ts | 32 +- .../testsLibrary/WorkspaceHandlingTests.ts | 280 +++++++++--------- tests/e2e/utils/DriverHelper.ts | 11 +- 7 files changed, 207 insertions(+), 170 deletions(-) create mode 100644 tests/e2e/mocha-java-springboot.json diff --git a/tests/e2e/mocha-java-springboot.json b/tests/e2e/mocha-java-springboot.json new file mode 100644 index 00000000000..758768d57ae --- /dev/null +++ b/tests/e2e/mocha-java-springboot.json @@ -0,0 +1,9 @@ +{ + "timeout": "1200000", + "reporter": "dist/driver/CheReporter.js", + "ui": "tdd", + "bail": true, + "full-trace": true, + "support": "source-map-support/register", + "spec": ["dist/tests/login/Login.spec.js", "dist/tests/devfiles/JavaSpringBoot.spec.js"] +} diff --git a/tests/e2e/pageobjects/dashboard/CreateWorkspace.ts b/tests/e2e/pageobjects/dashboard/CreateWorkspace.ts index 0ddd2a84dde..b7930dae13e 100644 --- a/tests/e2e/pageobjects/dashboard/CreateWorkspace.ts +++ b/tests/e2e/pageobjects/dashboard/CreateWorkspace.ts @@ -11,12 +11,14 @@ import { injectable, inject } from 'inversify'; import { CLASSES } from '../../inversify.types'; import { DriverHelper } from '../../utils/DriverHelper'; -import { By } from 'selenium-webdriver'; +import { By, Key } from 'selenium-webdriver'; import { Logger } from '../../utils/Logger'; import { TimeoutConstants } from '../../TimeoutConstants'; @injectable() export class CreateWorkspace { + static readonly FACTORY_URL_LOCATOR: By = By.xpath(`//input[@id="git-repo-url"]`); + constructor(@inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper) { } async waitTitleContains(expectedText: string, timeout: number = TimeoutConstants.TS_COMMON_DASHBOARD_WAIT_TIMEOUT) { @@ -49,6 +51,12 @@ export class CreateWorkspace { await this.driverHelper.waitAndClick(sampleLocator, timeout); } + async startWorkspaceUsingFactory(factoryUrl: string, timeout: number = TimeoutConstants.TS_CLICK_DASHBOARD_ITEM_TIMEOUT) { + Logger.debug(`CreateWorkspace.startWorkspaceUsingFactory factoryUrl: "${factoryUrl}"`); + await this.driverHelper.waitVisibility(CreateWorkspace.FACTORY_URL_LOCATOR, timeout); + await this.driverHelper.type(CreateWorkspace.FACTORY_URL_LOCATOR, Key.chord(factoryUrl, Key.ENTER), timeout); + } + private getSampleLocator(sampleName: string): By { Logger.trace(`CreateWorkspace.getSampleLocator sampleName: ${sampleName}`); diff --git a/tests/e2e/pageobjects/ide/ContextMenu.ts b/tests/e2e/pageobjects/ide/ContextMenu.ts index b5c2a9b22ef..747e222a7cd 100644 --- a/tests/e2e/pageobjects/ide/ContextMenu.ts +++ b/tests/e2e/pageobjects/ide/ContextMenu.ts @@ -12,7 +12,7 @@ import 'reflect-metadata'; import { injectable, inject } from 'inversify'; import { DriverHelper } from '../../utils/DriverHelper'; import { CLASSES } from '../../inversify.types'; -import { WebElement, Button, By, Key } from 'selenium-webdriver'; +import { By, Key } from 'selenium-webdriver'; import { Logger } from '../../utils/Logger'; import { TimeoutConstants } from '../../TimeoutConstants'; @@ -26,8 +26,8 @@ export class ContextMenu { async invokeContextMenuOnTheElementWithMouse(elementLocator: By) { Logger.debug(`ContextMenu.invokeContextMenuOnTheElementWithMouse ${elementLocator}`); - const webElement: WebElement = await this.driverHelper.waitVisibility(elementLocator, TimeoutConstants.TS_CONTEXT_MENU_TIMEOUT); - await this.driverHelper.getAction().click(webElement, Button.RIGHT).perform(); + // const webElement: WebElement = await this.driverHelper.waitVisibility(elementLocator, TimeoutConstants.TS_CONTEXT_MENU_TIMEOUT); + // await this.driverHelper.getAction().click(webElement, Button.RIGHT).perform(); this.waitContextMenu(); } diff --git a/tests/e2e/pageobjects/ide/Editor.ts b/tests/e2e/pageobjects/ide/Editor.ts index cb543baec76..0eb3f04bc6d 100644 --- a/tests/e2e/pageobjects/ide/Editor.ts +++ b/tests/e2e/pageobjects/ide/Editor.ts @@ -13,7 +13,7 @@ import { injectable, inject } from 'inversify'; import { DriverHelper } from '../../utils/DriverHelper'; import { CLASSES } from '../../inversify.types'; import { TestConstants } from '../../TestConstants'; -import { By, Key, error, ActionSequence, Button } from 'selenium-webdriver'; +import { By, Key, error } from 'selenium-webdriver'; import { Logger } from '../../utils/Logger'; import { TimeoutConstants } from '../../TimeoutConstants'; @@ -429,34 +429,33 @@ export class Editor { const yPosition: number = await this.getLineYCoordinates(line, fileName) + Editor.ADDITIONAL_SHIFTING_TO_Y; const xPosition: number = char + Editor.ADDITIONAL_SHIFTING_TO_X; - new ActionSequence(this.driverHelper.getDriver()). - mouseMove({ x: xPosition, y: yPosition }). - click(). - perform(); + this.driverHelper.getAction().move({ x: xPosition, y: yPosition }).click().perform(); } async goToDefinitionWithMouseClicking(line: number, char: number, fileName: string) { Logger.debug(`Editor.goToDefinitionWithMouseClicking line: "${line}" char: "${char}"`); const yPosition: number = await this.getLineYCoordinates(line, fileName) + Editor.ADDITIONAL_SHIFTING_TO_Y; + const xPosition: number = char + Editor.ADDITIONAL_SHIFTING_TO_X; - new ActionSequence(this.driverHelper.getDriver()). - keyDown(Key.CONTROL). - mouseMove({ x: char + Editor.ADDITIONAL_SHIFTING_TO_X, y: yPosition }). - click(). - keyDown(Key.CONTROL). - perform(); + this.driverHelper.getAction() + .keyDown(Key.CONTROL) + .move({ x: xPosition, y: yPosition}) + .click() + .keyDown(Key.CONTROL) + .perform(); } async mouseRightButtonClick(line: number, char: number, fileName: string) { Logger.debug(`Editor.mouseRightButtonClick line: "${line}" char: "${char}"`); const yPosition: number = await this.getLineYCoordinates(line, fileName) + Editor.ADDITIONAL_SHIFTING_TO_Y; + const xPosition: number = char + Editor.ADDITIONAL_SHIFTING_TO_X; - new ActionSequence(this.driverHelper.getDriver()). - mouseMove({ x: char + Editor.ADDITIONAL_SHIFTING_TO_X, y: yPosition }). - click(Button.RIGHT). - perform(); + this.driverHelper.getAction() + .move({ x: xPosition, y: yPosition}) + .contextClick() + .perform(); } private async scrollAndSearchSuggestion(editorTabTitle: string, suggestionLocator: By, timeout: number = 10000) { diff --git a/tests/e2e/tests/devfiles/JavaSpringBoot.spec.ts b/tests/e2e/tests/devfiles/JavaSpringBoot.spec.ts index af2b3fb7823..615f6034c00 100644 --- a/tests/e2e/tests/devfiles/JavaSpringBoot.spec.ts +++ b/tests/e2e/tests/devfiles/JavaSpringBoot.spec.ts @@ -15,14 +15,24 @@ import { CodeExecutionTests } from '../../testsLibrary/CodeExecutionTests'; import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; import CheReporter from '../../driver/CheReporter'; +import { CreateWorkspace } from '../../pageobjects/dashboard/CreateWorkspace'; +import { Logger } from '../../utils/Logger'; +import { ApiUrlResolver } from '../../utils/workspace/ApiUrlResolver'; +import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; +import { TimeoutConstants } from '../../TimeoutConstants'; +import { Dashboard } from '../../pageobjects/dashboard/Dashboard'; const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); const commonLanguageServerTests: LanguageServerTests = e2eContainer.get(CLASSES.LanguageServerTests); const codeExecutionTests: CodeExecutionTests = e2eContainer.get(CLASSES.CodeExecutionTests); +const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard); +const createWorkspace: CreateWorkspace = e2eContainer.get(CLASSES.CreateWorkspace); +const apiUrlResolver: ApiUrlResolver = e2eContainer.get(CLASSES.ApiUrlResolver); +const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const stack: string = 'Java Spring Boot'; -const workspaceSampleName: string = 'java-web-spring'; +const workspaceSampleName: string = 'java-spring-petclinic'; const workspaceRootFolderName: string = 'src'; const fileFolderPath: string = `${workspaceSampleName}/${workspaceRootFolderName}/main/java/org/springframework/samples/petclinic`; const tabTitle: string = 'PetClinicApplication.java'; @@ -33,7 +43,17 @@ const runTaskExpectedDialogue: string = 'Process 8080-tcp is now listening on po suite(`${stack} test`, async () => { suite(`Create ${stack} workspace`, async () => { - workspaceHandlingTests.createAndOpenWorkspace(stack); + // workspaceHandlingTests.createAndOpenWorkspace(stack); + test('Start Maven workspace using factory URL and vscode editor', async() => { + await dashboard.waitPage(); + Logger.debug(`Fetching user kubernetes namespace, storing auth token by getting workspaces API URL.`); + await apiUrlResolver.getWorkspacesApiUrl(); + await dashboard.clickCreateWorkspaceButton(); + await createWorkspace.waitPage(); + workspaceHandlingTests.setWindowHandle(await browserTabsUtil.getCurrentWindowHandle()); + await createWorkspace.startWorkspaceUsingFactory(`https://github.com/che-samples/java-spring-petclinic/tree/devfilev2?che-editor=che-incubator/che-code/insiders&storageType=persistent`); + await browserTabsUtil.waitAndSwitchToAnotherWindow(workspaceHandlingTests.getWindowHandle(), TimeoutConstants.TS_IDE_LOAD_TIMEOUT); + }); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); @@ -41,22 +61,22 @@ suite(`${stack} test`, async () => { projectAndFileTests.waitWorkspaceReadiness(workspaceSampleName, workspaceRootFolderName, false); }); - suite('Test opening file', async () => { + suite.skip('Test opening file', async () => { // opening file that soon should give time for LS to initialize projectAndFileTests.openFile(fileFolderPath, tabTitle); }); - suite('Validation of workspace build', async () => { + suite.skip('Validation of workspace build', async () => { codeExecutionTests.runTask(buildTaskName, 720_000); codeExecutionTests.closeTerminal(buildTaskName); }); - suite('Validation of workspace execution', async () => { + suite.skip('Validation of workspace execution', async () => { codeExecutionTests.runTaskWithNotification(runTaskName, runTaskExpectedDialogue, 120_000); codeExecutionTests.closeTerminal(runTaskName); }); - suite('Language server validation', async () => { + suite.skip('Language server validation', async () => { commonLanguageServerTests.autocomplete(tabTitle, 32, 56, 'args : String[]'); commonLanguageServerTests.errorHighlighting(tabTitle, 'error_text', 30); commonLanguageServerTests.goToImplementations(tabTitle, 32, 23, codeNavigationClassName); diff --git a/tests/e2e/testsLibrary/WorkspaceHandlingTests.ts b/tests/e2e/testsLibrary/WorkspaceHandlingTests.ts index b06a8fa9d0b..3904dc2469d 100644 --- a/tests/e2e/testsLibrary/WorkspaceHandlingTests.ts +++ b/tests/e2e/testsLibrary/WorkspaceHandlingTests.ts @@ -8,143 +8,143 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ - import 'reflect-metadata'; - import { inject, injectable } from 'inversify'; - import { CLASSES } from '../inversify.types'; - import { Dashboard } from '../pageobjects/dashboard/Dashboard'; - import { CreateWorkspace } from '../pageobjects/dashboard/CreateWorkspace'; - import { Workspaces } from '../pageobjects/dashboard/Workspaces'; - import { BrowserTabsUtil } from '../utils/BrowserTabsUtil'; - import { Logger } from '../utils/Logger'; - import { ApiUrlResolver } from '../utils/workspace/ApiUrlResolver'; - import { TimeoutConstants } from '../TimeoutConstants'; - import { DriverHelper } from '../utils/DriverHelper'; - import { Ide } from '../pageobjects/ide/Ide'; - import { By, error } from 'selenium-webdriver'; - import { TestConstants } from '../TestConstants'; - - @injectable() - export class WorkspaceHandlingTests { - - private static START_WORKSPACE_PAGE_NAME_LOCATOR: By = By.xpath(`//div[@class="ui-container"]/div[@class="pf-c-page"]//div[@class="pf-c-content"]/h1`); - private static READY_TO_READ_WORKSPACE_NAME_LOCATOR: By = By.xpath(`//div[@class="ui-container"]/div[@class="pf-c-page"]//div[@class="pf-c-content"]/h1[contains(.,'Starting workspace ')]`); - private static workspaceName: string = 'undefined'; - private static parentGUID: string; - - public static getWorkspaceName(): string { - return WorkspaceHandlingTests.workspaceName; - } - - public static setWorkspaceName(workspaceName: string) { - WorkspaceHandlingTests.workspaceName = workspaceName; - } - - public setWindowHandle(guid: string) { - WorkspaceHandlingTests.parentGUID = guid; - } - - public getWindowHandle(): string { - return WorkspaceHandlingTests.parentGUID; - } - - constructor( - @inject(CLASSES.Dashboard) private readonly dashboard: Dashboard, - @inject(CLASSES.CreateWorkspace) private readonly createWorkspace: CreateWorkspace, - @inject(CLASSES.Workspaces) private readonly workspaces: Workspaces, - @inject(CLASSES.BrowserTabsUtil) private readonly browserTabsUtil: BrowserTabsUtil, - @inject(CLASSES.ApiUrlResolver) private readonly apiUrlResolver: ApiUrlResolver, - @inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper, - @inject(CLASSES.Ide) private readonly ide: Ide) {} - - public createAndOpenWorkspace(stack: string) { - test(`Create and open new workspace, stack:${stack}`, async () => { - await this.dashboard.waitPage(); - Logger.debug(`Fetching user kubernetes namespace, storing auth token by getting workspaces API URL.`); - await this.apiUrlResolver.getWorkspacesApiUrl(); - await this.dashboard.clickCreateWorkspaceButton(); - await this.createWorkspace.waitPage(); - WorkspaceHandlingTests.parentGUID = await this.browserTabsUtil.getCurrentWindowHandle(); - await this.createWorkspace.clickOnSample(stack); - await this.browserTabsUtil.waitAndSwitchToAnotherWindow(WorkspaceHandlingTests.parentGUID, TimeoutConstants.TS_IDE_LOAD_TIMEOUT); - }); - } - - public openExistingWorkspace(workspaceName: string) { - test('Open and start existing workspace', async () => { - await this.dashboard.waitPage(); - Logger.debug(`Fetching user kubernetes namespace, storing auth token by getting workspaces API URL.`); - await this.apiUrlResolver.getWorkspacesApiUrl(); - await this.dashboard.clickWorkspacesButton(); - await this.workspaces.waitPage(); - await this.workspaces.clickOpenButton(workspaceName); - }); - } - - public obtainWorkspaceNameFromStartingPage() { - test('Obtain workspace name from workspace loader page', async() => { - try { - Logger.info("Waiting for workspace name on workspace loader page"); - await this.driverHelper.waitVisibility(WorkspaceHandlingTests.READY_TO_READ_WORKSPACE_NAME_LOCATOR, TimeoutConstants.TS_WAIT_LOADER_PRESENCE_TIMEOUT); - - const timeout: number = TimeoutConstants.TS_IDE_LOAD_TIMEOUT; - const polling: number = TestConstants.TS_SELENIUM_DEFAULT_POLLING; - const attempts: number = Math.ceil(timeout / polling); - let startingWorkspaceLineContent: string; - - for (let i = 0; i < attempts; i++) { - startingWorkspaceLineContent = await this.driverHelper.getDriver().findElement(WorkspaceHandlingTests.START_WORKSPACE_PAGE_NAME_LOCATOR).getAttribute('innerHTML'); - - // cutting away leading text - WorkspaceHandlingTests.workspaceName = startingWorkspaceLineContent.substring('Starting workspace '.length).trim(); - if (WorkspaceHandlingTests.workspaceName !== '') { - Logger.info(`Obtained workspace name from workspace loader page: ${WorkspaceHandlingTests.workspaceName}`); - break; - } - - this.driverHelper.sleep(polling); - } - } catch (err) { - Logger.error(`Failed to obtain workspace name from workspace loader page: ${err}`); - throw err; - } - }); - } - - public switchBackToFirstOpenIdeTabFromLeftToRight() { - test('WorkspaceHandlingTests.switchBackToIdeTab', async () => { - let tabs = await this.driverHelper.getDriver().getAllWindowHandles(); - Logger.trace(`WorkspaceHandlingTests.switchBackToIdeTab Found ${tabs.length} window handles, iterating...`); - for (let i = 0; i < tabs.length; i++) { - await this.browserTabsUtil.switchToWindow(tabs[i]); - try { - await this.ide.waitIde(TimeoutConstants.TS_IDE_LOAD_TIMEOUT); - Logger.debug(`WorkspaceHandlingTests.switchBackToIdeTab located and switched to IDE tab`); - return; - } catch (err) { - if (err instanceof error.TimeoutError) { - Logger.warn(`WorkspaceHandlingTests.switchBackToIdeTab Locator timed out, trying with another window handle.`); - continue; - } - Logger.error(`WorkspaceHandlingTests.switchBackToIdeTab Received unexpected exception while trying to locate IDE tab:${err}`); - throw err; - } - } - Logger.error(`WorkspaceHandlingTests.switchBackToIdeTab Failed to locate IDE tab, out of window handles.`); - }); - } - - public async stopWorkspace(workspaceName: string) { - await this.dashboard.openDashboard(); - await this.dashboard.stopWorkspaceByUI(workspaceName); - } - - public async removeWorkspace(workspaceName: string) { - await this.dashboard.openDashboard(); - await this.dashboard.deleteStoppedWorkspaceByUI(workspaceName); - } - - public async stopAndRemoveWorkspace(workspaceName: string) { - await this.dashboard.openDashboard(); - await this.dashboard.stopAndRemoveWorkspaceByUI(workspaceName); - } - } +import 'reflect-metadata'; +import { inject, injectable } from 'inversify'; +import { CLASSES } from '../inversify.types'; +import { Dashboard } from '../pageobjects/dashboard/Dashboard'; +import { CreateWorkspace } from '../pageobjects/dashboard/CreateWorkspace'; +import { Workspaces } from '../pageobjects/dashboard/Workspaces'; +import { BrowserTabsUtil } from '../utils/BrowserTabsUtil'; +import { Logger } from '../utils/Logger'; +import { ApiUrlResolver } from '../utils/workspace/ApiUrlResolver'; +import { TimeoutConstants } from '../TimeoutConstants'; +import { DriverHelper } from '../utils/DriverHelper'; +import { Ide } from '../pageobjects/ide/Ide'; +import { By, error } from 'selenium-webdriver'; +import { TestConstants } from '../TestConstants'; + +@injectable() +export class WorkspaceHandlingTests { + + private static START_WORKSPACE_PAGE_NAME_LOCATOR: By = By.xpath(`//div[@class="ui-container"]/div[@class="pf-c-page"]//div[@class="pf-c-content"]/h1`); + private static READY_TO_READ_WORKSPACE_NAME_LOCATOR: By = By.xpath(`//div[@class="ui-container"]/div[@class="pf-c-page"]//div[@class="pf-c-content"]/h1[contains(.,'Starting workspace ')]`); + private static workspaceName: string = 'undefined'; + private static parentGUID: string; + + public static getWorkspaceName(): string { + return WorkspaceHandlingTests.workspaceName; + } + + public static setWorkspaceName(workspaceName: string) { + WorkspaceHandlingTests.workspaceName = workspaceName; + } + + public setWindowHandle(guid: string) { + WorkspaceHandlingTests.parentGUID = guid; + } + + public getWindowHandle(): string { + return WorkspaceHandlingTests.parentGUID; + } + + constructor( + @inject(CLASSES.Dashboard) private readonly dashboard: Dashboard, + @inject(CLASSES.CreateWorkspace) private readonly createWorkspace: CreateWorkspace, + @inject(CLASSES.Workspaces) private readonly workspaces: Workspaces, + @inject(CLASSES.BrowserTabsUtil) private readonly browserTabsUtil: BrowserTabsUtil, + @inject(CLASSES.ApiUrlResolver) private readonly apiUrlResolver: ApiUrlResolver, + @inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper, + @inject(CLASSES.Ide) private readonly ide: Ide) {} + + public createAndOpenWorkspace(stack: string) { + test(`Create and open new workspace, stack:${stack}`, async () => { + await this.dashboard.waitPage(); + Logger.debug(`Fetching user kubernetes namespace, storing auth token by getting workspaces API URL.`); + await this.apiUrlResolver.getWorkspacesApiUrl(); + await this.dashboard.clickCreateWorkspaceButton(); + await this.createWorkspace.waitPage(); + WorkspaceHandlingTests.parentGUID = await this.browserTabsUtil.getCurrentWindowHandle(); + await this.createWorkspace.clickOnSample(stack); + await this.browserTabsUtil.waitAndSwitchToAnotherWindow(WorkspaceHandlingTests.parentGUID, TimeoutConstants.TS_IDE_LOAD_TIMEOUT); + }); + } + + public openExistingWorkspace(workspaceName: string) { + test('Open and start existing workspace', async () => { + await this.dashboard.waitPage(); + Logger.debug(`Fetching user kubernetes namespace, storing auth token by getting workspaces API URL.`); + await this.apiUrlResolver.getWorkspacesApiUrl(); + await this.dashboard.clickWorkspacesButton(); + await this.workspaces.waitPage(); + await this.workspaces.clickOpenButton(workspaceName); + }); + } + + public obtainWorkspaceNameFromStartingPage() { + test('Obtain workspace name from workspace loader page', async() => { + try { + Logger.info('Waiting for workspace name on workspace loader page'); + await this.driverHelper.waitVisibility(WorkspaceHandlingTests.READY_TO_READ_WORKSPACE_NAME_LOCATOR, TimeoutConstants.TS_WAIT_LOADER_PRESENCE_TIMEOUT); + + const timeout: number = TimeoutConstants.TS_IDE_LOAD_TIMEOUT; + const polling: number = TestConstants.TS_SELENIUM_DEFAULT_POLLING; + const attempts: number = Math.ceil(timeout / polling); + let startingWorkspaceLineContent: string; + + for (let i = 0; i < attempts; i++) { + startingWorkspaceLineContent = await this.driverHelper.getDriver().findElement(WorkspaceHandlingTests.START_WORKSPACE_PAGE_NAME_LOCATOR).getAttribute('innerHTML'); + + // cutting away leading text + WorkspaceHandlingTests.workspaceName = startingWorkspaceLineContent.substring('Starting workspace '.length).trim(); + if (WorkspaceHandlingTests.workspaceName !== '') { + Logger.info(`Obtained workspace name from workspace loader page: ${WorkspaceHandlingTests.workspaceName}`); + break; + } + + this.driverHelper.sleep(polling); + } + } catch (err) { + Logger.error(`Failed to obtain workspace name from workspace loader page: ${err}`); + throw err; + } + }); + } + + public switchBackToFirstOpenIdeTabFromLeftToRight() { + test('WorkspaceHandlingTests.switchBackToIdeTab', async () => { + let tabs = await this.driverHelper.getDriver().getAllWindowHandles(); + Logger.trace(`WorkspaceHandlingTests.switchBackToIdeTab Found ${tabs.length} window handles, iterating...`); + for (let i = 0; i < tabs.length; i++) { + await this.browserTabsUtil.switchToWindow(tabs[i]); + try { + await this.ide.waitIde(TimeoutConstants.TS_IDE_LOAD_TIMEOUT); + Logger.debug(`WorkspaceHandlingTests.switchBackToIdeTab located and switched to IDE tab`); + return; + } catch (err) { + if (err instanceof error.TimeoutError) { + Logger.warn(`WorkspaceHandlingTests.switchBackToIdeTab Locator timed out, trying with another window handle.`); + continue; + } + Logger.error(`WorkspaceHandlingTests.switchBackToIdeTab Received unexpected exception while trying to locate IDE tab:${err}`); + throw err; + } + } + Logger.error(`WorkspaceHandlingTests.switchBackToIdeTab Failed to locate IDE tab, out of window handles.`); + }); + } + + public async stopWorkspace(workspaceName: string) { + await this.dashboard.openDashboard(); + await this.dashboard.stopWorkspaceByUI(workspaceName); + } + + public async removeWorkspace(workspaceName: string) { + await this.dashboard.openDashboard(); + await this.dashboard.deleteStoppedWorkspaceByUI(workspaceName); + } + + public async stopAndRemoveWorkspace(workspaceName: string) { + await this.dashboard.openDashboard(); + await this.dashboard.stopAndRemoveWorkspaceByUI(workspaceName); + } +} diff --git a/tests/e2e/utils/DriverHelper.ts b/tests/e2e/utils/DriverHelper.ts index 163a14d7ad7..04cac5b698e 100644 --- a/tests/e2e/utils/DriverHelper.ts +++ b/tests/e2e/utils/DriverHelper.ts @@ -10,7 +10,7 @@ import { IDriver } from '../driver/IDriver'; import { inject, injectable } from 'inversify'; import { TYPES } from '../inversify.types'; -import { error, ActionSequence } from 'selenium-webdriver'; +import { error, Actions } from 'selenium-webdriver'; import 'reflect-metadata'; import { ThenableWebDriver, By, until, WebElement } from 'selenium-webdriver'; import { TestConstants } from '../TestConstants'; @@ -26,7 +26,7 @@ export class DriverHelper { this.driver = driver.get(); } - public getAction(): ActionSequence { + public getAction(): Actions { Logger.trace('DriverHelper.getAction'); return this.driver.actions(); @@ -698,9 +698,10 @@ export class DriverHelper { Logger.trace(`DriverHelper.scrollTo ${elementLocator}`); for (let i = 0; i < attempts; i++) { - let element: WebElement; + // let element: WebElement; try { - element = await this.waitPresence(elementLocator, polling); + // element = await this.waitPresence(elementLocator, polling); + await this.waitPresence(elementLocator, polling); } catch (err) { if (i >= attempts - 1) { Logger.error(`DriverHelper.scrollTo - failed with exception, out of attempts - ${err}`); @@ -717,7 +718,7 @@ export class DriverHelper { } try { - await this.getAction().mouseMove(element).perform(); + // await this.getAction().mouseMove(element).perform(); return; } catch (err) { if (err instanceof error.StaleElementReferenceError) { From 36be8c642689612c4f2bcd99f38efb988798bb8d Mon Sep 17 00:00:00 2001 From: Tibor Dancs Date: Mon, 5 Sep 2022 09:21:57 +0200 Subject: [PATCH 2/5] Initilizing vscode-extension-tester, detecting workbench presence uisng monaco-page-objects Signed-off-by: Tibor Dancs --- tests/e2e/driver/CheReporter.ts | 4 + tests/e2e/driver/ChromeDriver.ts | 12 +- tests/e2e/package-lock.json | 2505 +++++++++++------ tests/e2e/package.json | 11 +- .../e2e/tests/devfiles/JavaSpringBoot.spec.ts | 26 +- tests/e2e/utils/DriverHelper.ts | 7 +- 6 files changed, 1623 insertions(+), 942 deletions(-) diff --git a/tests/e2e/driver/CheReporter.ts b/tests/e2e/driver/CheReporter.ts index 556718e89d5..bc8c842b171 100644 --- a/tests/e2e/driver/CheReporter.ts +++ b/tests/e2e/driver/CheReporter.ts @@ -23,6 +23,8 @@ import { CheApiRequestHandler } from '../utils/requestHandlers/CheApiRequestHand import { TimeoutConstants } from '../TimeoutConstants'; import { Logger } from '../utils/Logger'; import { Sanitizer } from '../utils/Sanitizer'; +import * as monacoPageObjects from 'monaco-page-objects'; +import * as vscodeExtensionTesterLocators from 'vscode-extension-tester-locators'; const e2eContainer = inversifyConfig.e2eContainer; const driver: IDriver = e2eContainer.get(TYPES.Driver); @@ -88,6 +90,8 @@ class CheReporter extends mocha.reporters.Spec { } // await preferencesHandler.setConfirmExit(AskForConfirmationType.never); // await preferencesHandler.setTerminalType(TerminalRendererType.dom); + + monacoPageObjects.initPageObjects('1.71.0', '1.37.0', vscodeExtensionTesterLocators.getLocatorsPath(), driver.get(), 'google-chrome'); }); runner.on('test', async function (test: mocha.Test) { diff --git a/tests/e2e/driver/ChromeDriver.ts b/tests/e2e/driver/ChromeDriver.ts index c5ff7d9e44a..066230e9612 100644 --- a/tests/e2e/driver/ChromeDriver.ts +++ b/tests/e2e/driver/ChromeDriver.ts @@ -22,17 +22,19 @@ export class ChromeDriver implements IDriver { constructor() { const options: Options = this.getDriverOptions(); this.driver = this.getDriverBuilder(options).build(); - - this.driver - .manage() - .window() - .setSize(TestConstants.TS_SELENIUM_RESOLUTION_WIDTH, TestConstants.TS_SELENIUM_RESOLUTION_HEIGHT); } get(): ThenableWebDriver { return this.driver; } + async setWindowSize() { + await this.driver + .manage() + .window() + .setSize(TestConstants.TS_SELENIUM_RESOLUTION_WIDTH, TestConstants.TS_SELENIUM_RESOLUTION_HEIGHT); + } + private getDriverOptions(): Options { let options: Options = new Options() .addArguments('--no-sandbox') diff --git a/tests/e2e/package-lock.json b/tests/e2e/package-lock.json index 0f413945aa6..a89efad6063 100644 --- a/tests/e2e/package-lock.json +++ b/tests/e2e/package-lock.json @@ -18,17 +18,19 @@ "@types/mocha": "5.2.6", "@types/node": "11.13.4", "@types/rimraf": "2.0.2", - "@types/selenium-webdriver": "3.0.16", + "@types/selenium-webdriver": "4.1.3", "axios": "^0.25.0", "chai": "4.2.0", - "chromedriver": "^101.0.0", + "chromedriver": "^103.0.0", "mocha": "^9.1.3", + "monaco-page-objects": "2.0.1", "rimraf": "2.6.2", - "selenium-webdriver": "3.6.0", + "selenium-webdriver": "4.4.0", "ts-node": "8.0.3", "tslint": "5.10.0", "typed-rest-client": "1.8.5", - "typescript": "3.9.9" + "typescript": "3.9.9", + "vscode-extension-tester-locators": "2.0.0" } }, "node_modules/@eclipse-che/api": { @@ -72,9 +74,9 @@ } }, "node_modules/@testim/chrome-version": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@testim/chrome-version/-/chrome-version-1.1.3.tgz", - "integrity": "sha512-g697J3WxV/Zytemz8aTuKjTGYtta9+02kva3C1xc7KXB8GdbfE1akGJIsZLyY/FSh2QrnE+fiB7vmWU3XNcb6A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@testim/chrome-version/-/chrome-version-1.1.2.tgz", + "integrity": "sha512-1c4ZOETSRpI0iBfIFUqU4KqwBAB2lHUAlBjZz/YqOHqwM9dTTzjV6Km0ZkiEiSCx/tLr1BtESIKyWWMww+RUqw==", "dev": true }, "node_modules/@types/chai": { @@ -83,20 +85,27 @@ "integrity": "sha512-2Y8uPt0/jwjhQ6EiluT0XCri1Dbplr0ZxfFXUz+ye13gaqE8u5gL5ppao1JrUYr9cIip5S6MvQzBS7Kke7U9VA==", "dev": true }, + "node_modules/@types/events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", + "integrity": "sha1-KGLz9Yqaf3w+eNefEw3U1xwlwqc=", + "dev": true + }, "node_modules/@types/glob": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.0.0.tgz", - "integrity": "sha512-l6NQsDDyQUVeoTynNpC9uRvCUint/gSUXQA2euwmTuWGvPY5LSDUu6tkCtJB2SvGQlJQzLaKqcGZP4//7EDveA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", + "integrity": "sha1-qlmhxuP7xCHgfM0xqUTDDrpSFXU=", "dev": true, "dependencies": { + "@types/events": "*", "@types/minimatch": "*", "@types/node": "*" } }, "node_modules/@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0=", "dev": true }, "node_modules/@types/mocha": { @@ -108,7 +117,7 @@ "node_modules/@types/node": { "version": "11.13.4", "resolved": "https://registry.npmjs.org/@types/node/-/node-11.13.4.tgz", - "integrity": "sha512-+rabAZZ3Yn7tF/XPGHupKIL5EcAbrLxnTr/hgQICxbeuAfWtT0UZSfULE+ndusckBItcv4o6ZeOJplQikVcLvQ==", + "integrity": "sha1-+D7Dw+BbF0tyQfretmiCZ/5bIso=", "dev": true }, "node_modules/@types/rimraf": { @@ -122,15 +131,27 @@ } }, "node_modules/@types/selenium-webdriver": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.16.tgz", - "integrity": "sha512-lMC2G0ItF2xv4UCiwbJGbnJlIuUixHrioOhNGHSCsYCJ8l4t9hMCUimCytvFv7qy6AfSzRxhRHoGa+UqaqwyeA==", - "dev": true + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-4.1.3.tgz", + "integrity": "sha512-wbLIzr+fG/JT2qGJUo4YU9oObkKI1TqNSxJZkQIlpK2xllJAAZA7+IcybSnC4537qGQEmhCHwWqFN1GC9r8dgw==", + "dev": true, + "dependencies": { + "@types/ws": "*" + } + }, + "node_modules/@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dev": true, + "dependencies": { + "@types/node": "*" + } }, "node_modules/@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", + "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", "dev": true, "optional": true, "dependencies": { @@ -187,18 +208,15 @@ } }, "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=4" } }, "node_modules/anymatch": { @@ -214,17 +232,40 @@ "node": ">= 8" } }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz", + "integrity": "sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==", "dev": true }, "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } }, "node_modules/array-union": { "version": "2.1.0", @@ -238,12 +279,18 @@ "node_modules/assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "integrity": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs=", "dev": true, "engines": { "node": "*" } }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, "node_modules/axios": { "version": "0.25.0", "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", @@ -256,7 +303,7 @@ "node_modules/babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "dependencies": { "chalk": "^1.1.3", @@ -267,7 +314,7 @@ "node_modules/babel-code-frame/node_modules/ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, "engines": { "node": ">=0.10.0" @@ -276,7 +323,7 @@ "node_modules/babel-code-frame/node_modules/ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true, "engines": { "node": ">=0.10.0" @@ -285,7 +332,7 @@ "node_modules/babel-code-frame/node_modules/chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "dependencies": { "ansi-styles": "^2.2.1", @@ -298,19 +345,10 @@ "node": ">=0.10.0" } }, - "node_modules/babel-code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/babel-code-frame/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "dependencies": { "ansi-regex": "^2.0.0" @@ -322,16 +360,16 @@ "node_modules/babel-code-frame/node_modules/supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true, "engines": { "node": ">=0.8.0" } }, "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "node_modules/binary-extensions": { @@ -346,7 +384,7 @@ "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", "dev": true, "dependencies": { "balanced-match": "^1.0.0", @@ -356,7 +394,7 @@ "node_modules/braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", "dev": true, "dependencies": { "fill-range": "^7.0.1" @@ -374,22 +412,22 @@ "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", "dev": true, "engines": { "node": "*" } }, "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=", "dev": true }, "node_modules/builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true, "engines": { "node": ">=0.10.0" @@ -409,9 +447,9 @@ } }, "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", + "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", "dev": true, "engines": { "node": ">=10" @@ -438,37 +476,35 @@ } }, "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=4" } }, "node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", "dev": true, "engines": { "node": "*" @@ -502,14 +538,14 @@ } }, "node_modules/chromedriver": { - "version": "101.0.0", - "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-101.0.0.tgz", - "integrity": "sha512-LkkWxy6KM/0YdJS8qBeg5vfkTZTRamhBfOttb4oic4echDgWvCU1E8QcBbUBOHqZpSrYMyi7WMKmKMhXFUaZ+w==", + "version": "103.0.0", + "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-103.0.0.tgz", + "integrity": "sha512-7BHf6HWt0PeOHCzWO8qlnD13sARzr5AKTtG8Csn+czsuAsajwPxdLNtry5GPh8HYFyl+i0M+yg3bT43AGfgU9w==", "dev": true, "hasInstallScript": true, "dependencies": { "@testim/chrome-version": "^1.1.2", - "axios": "^0.24.0", + "axios": "^0.27.2", "del": "^6.0.0", "extract-zip": "^2.0.1", "https-proxy-agent": "^5.0.0", @@ -524,12 +560,13 @@ } }, "node_modules/chromedriver/node_modules/axios": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", - "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "dev": true, "dependencies": { - "follow-redirects": "^1.14.4" + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" } }, "node_modules/clean-stack": { @@ -541,6 +578,20 @@ "node": ">=6" } }, + "node_modules/clipboardy": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", + "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", + "dev": true, + "dependencies": { + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -552,46 +603,103 @@ "wrap-ansi": "^7.0.0" } }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "dev": true, + "dependencies": { + "color-name": "1.1.3" } }, "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "dev": true + }, + "node_modules/compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", "dev": true }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -620,7 +728,7 @@ "node_modules/deep-eql": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "integrity": "sha1-38lARACtHI/gI+faHfHBR8S0RN8=", "dev": true, "dependencies": { "type-detect": "^4.0.0" @@ -636,9 +744,9 @@ "dev": true }, "node_modules/del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", "dev": true, "dependencies": { "globby": "^11.0.1", @@ -672,10 +780,19 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI=", "dev": true, "engines": { "node": ">=0.3.1" @@ -718,21 +835,18 @@ } }, "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.8.0" } }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", "dev": true, "bin": { "esparse": "bin/esparse.js", @@ -743,14 +857,44 @@ } }, "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true, "engines": { "node": ">=0.10.0" } }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/execa/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/extract-zip": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", @@ -772,9 +916,9 @@ } }, "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -784,7 +928,7 @@ "micromatch": "^4.0.4" }, "engines": { - "node": ">=8.6.0" + "node": ">=8" } }, "node_modules/fastq": { @@ -799,7 +943,7 @@ "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", "dev": true, "dependencies": { "pend": "~1.2.0" @@ -808,7 +952,7 @@ "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" @@ -843,9 +987,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.14.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", "dev": true, "funding": [ { @@ -862,30 +1006,44 @@ } } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=12" } }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", "dev": true }, "node_modules/get-caller-file": { @@ -900,21 +1058,21 @@ "node_modules/get-func-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true, "engines": { "node": "*" } }, "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -967,29 +1125,17 @@ "node": ">= 6" } }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", "dev": true, "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", "slash": "^3.0.0" }, "engines": { @@ -1000,9 +1146,9 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", "dev": true }, "node_modules/growl": { @@ -1017,7 +1163,7 @@ "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", "dev": true, "dependencies": { "function-bind": "^1.1.1" @@ -1029,7 +1175,7 @@ "node_modules/has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "dependencies": { "ansi-regex": "^2.0.0" @@ -1041,25 +1187,25 @@ "node_modules/has-ansi/node_modules/ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg=", "dev": true, "engines": { "node": ">= 0.4" @@ -1078,9 +1224,9 @@ } }, "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "dev": true, "dependencies": { "agent-base": "6", @@ -1091,9 +1237,9 @@ } }, "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", "dev": true, "engines": { "node": ">= 4" @@ -1102,7 +1248,7 @@ "node_modules/immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", "dev": true }, "node_modules/indent-string": { @@ -1117,7 +1263,7 @@ "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "dependencies": { "once": "^1.3.0", @@ -1133,7 +1279,7 @@ "node_modules/inversify": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/inversify/-/inversify-5.0.1.tgz", - "integrity": "sha512-Ieh06s48WnEYGcqHepdsJUIJUXpwH5o5vodAX+DK2JA/gjy4EbEcQZxw+uFfzysmKjiLXGYwNG3qDZsKVMcINQ==" + "integrity": "sha1-UA1wmxQ0iWzloNWJFcSkIQ40+24=" }, "node_modules/ip-regex": { "version": "4.3.0", @@ -1156,22 +1302,25 @@ "node": ">=8" } }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, - "dependencies": { - "has": "^1.0.3" + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true, "engines": { "node": ">=0.10.0" @@ -1187,9 +1336,9 @@ } }, "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", "dev": true, "dependencies": { "is-extglob": "^2.1.1" @@ -1201,7 +1350,7 @@ "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", "dev": true, "engines": { "node": ">=0.12.0" @@ -1234,12 +1383,33 @@ "node": ">=8" } }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, - "engines": { + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { "node": ">=10" }, "funding": { @@ -1252,10 +1422,22 @@ "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", "dev": true }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/is2": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.9.tgz", - "integrity": "sha512-rZkHeBn9Zzq52sd9IUIV3a5mfwBY+o2HePMh0wkGBM4z4qjvy2GwVxQ6nNXSfw6MmVP6gf1QIlWjiOavhM3x5g==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.7.tgz", + "integrity": "sha512-4vBQoURAXC6hnLFxD4VW7uc04XiwTTl/8ydYJxKvPwkWQrSjInkuM5VZVg6BGr1/natq69zDuvO9lGpLClJqvA==", "dev": true, "dependencies": { "deep-is": "^0.1.3", @@ -1269,37 +1451,59 @@ "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", "dev": true }, "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=", "dev": true, "dependencies": { - "argparse": "^2.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/jszip": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.0.tgz", + "integrity": "sha512-LDfVtOLtOxb9RXkYOwPyNBTQDL4eUbqahtoY6x07GiDJHwSYvn8sHHIw8wINImV3MqbMNve2gSuM1DDqEKk09Q==", "dev": true, "dependencies": { "lie": "~3.3.0", @@ -1308,10 +1512,19 @@ "setimmediate": "^1.0.5" } }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/lie": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "integrity": "sha1-3Pgt7lRfRgdNryAMfBxaCOD0D2o=", "dev": true, "dependencies": { "immediate": "~3.0.5" @@ -1348,10 +1561,80 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", + "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", "dev": true }, "node_modules/merge2": { @@ -1364,28 +1647,49 @@ } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" + "braces": "^3.0.1", + "picomatch": "^2.2.3" }, "engines": { "node": ">=8.6" } }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/minimatch": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", - "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=10" + "node": "*" } }, "node_modules/mocha": { @@ -1431,28 +1735,56 @@ "url": "https://opencollective.com/mochajs" } }, - "node_modules/mocha/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "node_modules/mocha/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/mocha/node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true, - "dependencies": { - "ms": "2.1.2" - }, "engines": { - "node": ">=6.0" + "node": ">=0.3.1" + } + }, + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mocha/node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "node_modules/mocha/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", + "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": ">=10" + } }, "node_modules/mocha/node_modules/ms": { "version": "2.1.3", @@ -1460,6 +1792,45 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, + "node_modules/monaco-page-objects": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/monaco-page-objects/-/monaco-page-objects-2.0.1.tgz", + "integrity": "sha512-OL2vzqA0YkKozdEEwj3fBYyJsv2jWZrG8nlKfho5epe//FQ7sY7QzaJ8OtfBD5mYGT7mwV1O649A/E33D5H6kA==", + "dev": true, + "dependencies": { + "clipboardy": "^2.3.0", + "clone-deep": "^4.0.1", + "compare-versions": "^3.5.1", + "fs-extra": "^10.0.0", + "ts-essentials": "^8.0.0" + }, + "peerDependencies": { + "selenium-webdriver": "^4.2.0" + } + }, + "node_modules/monaco-page-objects/node_modules/ts-essentials": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-8.1.0.tgz", + "integrity": "sha512-34xALeQADWRYq9kbtprP4KdpTQ3v3BBIs/U4SpaP+C4++B8ijXY5NnILRJLchQVMzw7YBzKuGMUMrI9uT+ALVw==", + "dev": true, + "peerDependencies": { + "typescript": ">=4.0.0" + } + }, + "node_modules/monaco-page-objects/node_modules/typescript": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz", + "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==", + "dev": true, + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -1478,6 +1849,12 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -1487,31 +1864,34 @@ "node": ">=0.10.0" } }, - "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "dependencies": { "wrappy": "1" } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, "node_modules/p-limit": { @@ -1560,9 +1940,9 @@ } }, "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", + "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", "dev": true }, "node_modules/path-exists": { @@ -1577,12 +1957,21 @@ "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true, "engines": { "node": ">=0.10.0" } }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", @@ -1610,7 +1999,7 @@ "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", "dev": true }, "node_modules/picomatch": { @@ -1626,9 +2015,9 @@ } }, "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "dev": true }, "node_modules/proxy-from-env": { @@ -1648,9 +2037,9 @@ } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", + "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", "dev": true, "dependencies": { "side-channel": "^1.0.4" @@ -1692,9 +2081,9 @@ } }, "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -1721,32 +2110,24 @@ "node_modules/reflect-metadata": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + "integrity": "sha1-Z648pXyXKiqhZCsQ/jY/4y1J3Ag=" }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", + "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "path-parse": "^1.0.6" } }, "node_modules/reusify": { @@ -1762,7 +2143,7 @@ "node_modules/rimraf": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "integrity": "sha1-LtgVDSShbqhlHm1u8PR8QVjOejY=", "dev": true, "dependencies": { "glob": "^7.0.5" @@ -1797,34 +2178,27 @@ "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", "dev": true }, "node_modules/selenium-webdriver": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", - "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.4.0.tgz", + "integrity": "sha512-Du+/xfpvNi9zHAeYgXhOWN9yH0hph+cuX+hHDBr7d+SbtQVcfNJwBzLsbdHrB1Wh7MHXFuIkSG88A9TRRQUx3g==", "dev": true, "dependencies": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", - "tmp": "0.0.30", - "xml2js": "^0.4.17" + "jszip": "^3.10.0", + "tmp": "^0.2.1", + "ws": ">=8.7.0" }, "engines": { - "node": ">= 6.9.0" + "node": ">= 10.15.0" } }, "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", "dev": true, "bin": { "semver": "bin/semver" @@ -1845,6 +2219,39 @@ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", "dev": true }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -1859,6 +2266,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/side-channel/node_modules/object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -1871,16 +2293,16 @@ "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", + "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", "dev": true, "dependencies": { "buffer-from": "^1.0.0", @@ -1890,13 +2312,13 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", "dev": true, "dependencies": { "safe-buffer": "~5.1.0" @@ -1928,6 +2350,15 @@ "node": ">=8" } }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -1955,16 +2386,13 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "node_modules/supports-color/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, "node_modules/tcp-port-used": { @@ -1995,21 +2423,36 @@ } }, "node_modules/tmp": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", - "integrity": "sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dev": true, "dependencies": { - "os-tmpdir": "~1.0.1" + "rimraf": "^3.0.0" }, "engines": { - "node": ">=0.4.0" + "node": ">=8.17.0" + } + }, + "node_modules/tmp/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", "dev": true, "dependencies": { "is-number": "^7.0.0" @@ -2031,177 +2474,54 @@ "yn": "^3.0.0" }, "bin": { - "ts-node": "dist/bin.js" - }, - "engines": { - "node": ">=4.2.0" - }, - "peerDependencies": { - "typescript": ">=2.0" - } - }, - "node_modules/ts-node/node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tslint": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.10.0.tgz", - "integrity": "sha512-4Mra0B0RFVnof0oFMU0MDyclKmzNyFiZJHzAH6vJ28srZ+dXa/6a6prSJZHyJygrH72yVV2or3dY59EdXCnPaA==", - "dev": true, - "dependencies": { - "babel-code-frame": "^6.22.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^3.2.0", - "glob": "^7.1.1", - "js-yaml": "^3.7.0", - "minimatch": "^3.0.4", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.8.0", - "tsutils": "^2.12.1" - }, - "bin": { - "tslint": "bin/tslint" - }, - "engines": { - "node": ">=4.8.0" - }, - "peerDependencies": { - "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev" - } - }, - "node_modules/tslint/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tslint/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/tslint/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tslint/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/tslint/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/tslint/node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/tslint/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/tslint/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/tslint/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/tslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" + "ts-node": "dist/bin.js" }, "engines": { - "node": "*" + "node": ">=4.2.0" + }, + "peerDependencies": { + "typescript": ">=2.0" } }, - "node_modules/tslint/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "dev": true + }, + "node_modules/tslint": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.10.0.tgz", + "integrity": "sha1-EeJrzLiK+gLdDZlWyuPUVAtfVMM=", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "babel-code-frame": "^6.22.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^3.2.0", + "glob": "^7.1.1", + "js-yaml": "^3.7.0", + "minimatch": "^3.0.4", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.12.1" + }, + "bin": { + "tslint": "bin/tslint" }, "engines": { - "node": ">=4" + "node": ">=4.8.0" + }, + "peerDependencies": { + "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev" } }, "node_modules/tsutils": { "version": "2.29.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "integrity": "sha1-MrSIUBRnrL7dS4VJhnOggSrKC5k=", "dev": true, "dependencies": { "tslib": "^1.8.1" @@ -2222,7 +2542,7 @@ "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "integrity": "sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw=", "dev": true, "engines": { "node": ">=4" @@ -2254,17 +2574,36 @@ } }, "node_modules/underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz", + "integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==", "dev": true }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, + "node_modules/vscode-extension-tester-locators": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vscode-extension-tester-locators/-/vscode-extension-tester-locators-2.0.0.tgz", + "integrity": "sha512-ljmevi7R1K5uCiMpstKydh/sCA9TEiohxLmzX30ZZU5qE/ZNWz/5oLrxTdqN3EcSVW9ZXhExvrQFvHoYZxy9Ng==", + "dev": true, + "peerDependencies": { + "monaco-page-objects": "^2.0.0", + "selenium-webdriver": "^4.2.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -2303,32 +2642,64 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } }, - "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=4.0.0" + "node": ">=7.0.0" } }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/ws": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", + "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", "dev": true, "engines": { - "node": ">=4.0" + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, "node_modules/y18n": { @@ -2385,7 +2756,7 @@ "node_modules/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", "dev": true, "dependencies": { "buffer-crc32": "~0.2.3", @@ -2393,9 +2764,9 @@ } }, "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.0.tgz", + "integrity": "sha512-kKfnnYkbTfrAdd0xICNFw7Atm8nKpLcLv9AZGEt+kczL/WQVai4e2V6ZN8U/O+iI6WrNuJjNNOyu4zfhl9D3Hg==", "dev": true, "engines": { "node": ">=6" @@ -2447,9 +2818,9 @@ } }, "@testim/chrome-version": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@testim/chrome-version/-/chrome-version-1.1.3.tgz", - "integrity": "sha512-g697J3WxV/Zytemz8aTuKjTGYtta9+02kva3C1xc7KXB8GdbfE1akGJIsZLyY/FSh2QrnE+fiB7vmWU3XNcb6A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@testim/chrome-version/-/chrome-version-1.1.2.tgz", + "integrity": "sha512-1c4ZOETSRpI0iBfIFUqU4KqwBAB2lHUAlBjZz/YqOHqwM9dTTzjV6Km0ZkiEiSCx/tLr1BtESIKyWWMww+RUqw==", "dev": true }, "@types/chai": { @@ -2458,20 +2829,27 @@ "integrity": "sha512-2Y8uPt0/jwjhQ6EiluT0XCri1Dbplr0ZxfFXUz+ye13gaqE8u5gL5ppao1JrUYr9cIip5S6MvQzBS7Kke7U9VA==", "dev": true }, + "@types/events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", + "integrity": "sha1-KGLz9Yqaf3w+eNefEw3U1xwlwqc=", + "dev": true + }, "@types/glob": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.0.0.tgz", - "integrity": "sha512-l6NQsDDyQUVeoTynNpC9uRvCUint/gSUXQA2euwmTuWGvPY5LSDUu6tkCtJB2SvGQlJQzLaKqcGZP4//7EDveA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", + "integrity": "sha1-qlmhxuP7xCHgfM0xqUTDDrpSFXU=", "dev": true, "requires": { + "@types/events": "*", "@types/minimatch": "*", "@types/node": "*" } }, "@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0=", "dev": true }, "@types/mocha": { @@ -2483,7 +2861,7 @@ "@types/node": { "version": "11.13.4", "resolved": "https://registry.npmjs.org/@types/node/-/node-11.13.4.tgz", - "integrity": "sha512-+rabAZZ3Yn7tF/XPGHupKIL5EcAbrLxnTr/hgQICxbeuAfWtT0UZSfULE+ndusckBItcv4o6ZeOJplQikVcLvQ==", + "integrity": "sha1-+D7Dw+BbF0tyQfretmiCZ/5bIso=", "dev": true }, "@types/rimraf": { @@ -2497,15 +2875,27 @@ } }, "@types/selenium-webdriver": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.16.tgz", - "integrity": "sha512-lMC2G0ItF2xv4UCiwbJGbnJlIuUixHrioOhNGHSCsYCJ8l4t9hMCUimCytvFv7qy6AfSzRxhRHoGa+UqaqwyeA==", - "dev": true + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-4.1.3.tgz", + "integrity": "sha512-wbLIzr+fG/JT2qGJUo4YU9oObkKI1TqNSxJZkQIlpK2xllJAAZA7+IcybSnC4537qGQEmhCHwWqFN1GC9r8dgw==", + "dev": true, + "requires": { + "@types/ws": "*" + } + }, + "@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dev": true, + "requires": { + "@types/node": "*" + } }, "@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", + "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", "dev": true, "optional": true, "requires": { @@ -2550,12 +2940,12 @@ "dev": true }, "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", "dev": true, "requires": { - "color-convert": "^2.0.1" + "color-convert": "^1.9.0" } }, "anymatch": { @@ -2568,17 +2958,26 @@ "picomatch": "^2.0.4" } }, + "arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true + }, "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz", + "integrity": "sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==", "dev": true }, "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } }, "array-union": { "version": "2.1.0", @@ -2589,7 +2988,13 @@ "assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "integrity": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs=", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, "axios": { @@ -2604,7 +3009,7 @@ "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { "chalk": "^1.1.3", @@ -2615,19 +3020,19 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { "ansi-styles": "^2.2.1", @@ -2637,16 +3042,10 @@ "supports-color": "^2.0.0" } }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { "ansi-regex": "^2.0.0" @@ -2655,15 +3054,15 @@ "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true } } }, "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "binary-extensions": { @@ -2675,7 +3074,7 @@ "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", "dev": true, "requires": { "balanced-match": "^1.0.0", @@ -2685,7 +3084,7 @@ "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", "dev": true, "requires": { "fill-range": "^7.0.1" @@ -2700,19 +3099,19 @@ "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", "dev": true }, "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=", "dev": true }, "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, "call-bind": { @@ -2726,9 +3125,9 @@ } }, "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", + "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", "dev": true }, "chai": { @@ -2746,22 +3145,23 @@ } }, "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", "dev": true, "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", "dev": true, "requires": { - "has-flag": "^4.0.0" + "has-flag": "^3.0.0" } } } @@ -2769,7 +3169,7 @@ "check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", "dev": true }, "chokidar": { @@ -2789,13 +3189,13 @@ } }, "chromedriver": { - "version": "101.0.0", - "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-101.0.0.tgz", - "integrity": "sha512-LkkWxy6KM/0YdJS8qBeg5vfkTZTRamhBfOttb4oic4echDgWvCU1E8QcBbUBOHqZpSrYMyi7WMKmKMhXFUaZ+w==", + "version": "103.0.0", + "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-103.0.0.tgz", + "integrity": "sha512-7BHf6HWt0PeOHCzWO8qlnD13sARzr5AKTtG8Csn+czsuAsajwPxdLNtry5GPh8HYFyl+i0M+yg3bT43AGfgU9w==", "dev": true, "requires": { "@testim/chrome-version": "^1.1.2", - "axios": "^0.24.0", + "axios": "^0.27.2", "del": "^6.0.0", "extract-zip": "^2.0.1", "https-proxy-agent": "^5.0.0", @@ -2804,12 +3204,13 @@ }, "dependencies": { "axios": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", - "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "dev": true, "requires": { - "follow-redirects": "^1.14.4" + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" } } } @@ -2820,6 +3221,17 @@ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true }, + "clipboardy": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", + "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", + "dev": true, + "requires": { + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + } + }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -2831,43 +3243,93 @@ "wrap-ansi": "^7.0.0" } }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", "dev": true, "requires": { - "color-name": "~1.1.4" + "color-name": "1.1.3" } }, "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "dev": true + }, + "compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", "dev": true }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "requires": { "ms": "2.1.2" @@ -2882,7 +3344,7 @@ "deep-eql": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "integrity": "sha1-38lARACtHI/gI+faHfHBR8S0RN8=", "dev": true, "requires": { "type-detect": "^4.0.0" @@ -2895,9 +3357,9 @@ "dev": true }, "del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", "dev": true, "requires": { "globby": "^11.0.1", @@ -2921,10 +3383,16 @@ } } }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI=", "dev": true }, "dir-glob": { @@ -2958,23 +3426,49 @@ "dev": true }, "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", "dev": true }, "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + } + } + }, "extract-zip": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", @@ -2988,9 +3482,9 @@ } }, "fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -3012,7 +3506,7 @@ "fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", "dev": true, "requires": { "pend": "~1.2.0" @@ -3021,7 +3515,7 @@ "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", "dev": true, "requires": { "to-regex-range": "^5.0.1" @@ -3044,28 +3538,43 @@ "dev": true }, "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.14.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", "dev": true }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", "dev": true }, "get-caller-file": { @@ -3077,18 +3586,18 @@ "get-func-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true }, "get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.1" } }, "get-stream": { @@ -3112,17 +3621,6 @@ "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" - }, - "dependencies": { - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } } }, "glob-parent": { @@ -3135,23 +3633,23 @@ } }, "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", "dev": true, "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", "slash": "^3.0.0" } }, "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", "dev": true }, "growl": { @@ -3163,7 +3661,7 @@ "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", "dev": true, "requires": { "function-bind": "^1.1.1" @@ -3172,7 +3670,7 @@ "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { "ansi-regex": "^2.0.0" @@ -3181,21 +3679,21 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true } } }, "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg=", "dev": true }, "he": { @@ -3205,9 +3703,9 @@ "dev": true }, "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "dev": true, "requires": { "agent-base": "6", @@ -3215,15 +3713,15 @@ } }, "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", "dev": true }, "immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", "dev": true }, "indent-string": { @@ -3235,7 +3733,7 @@ "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { "once": "^1.3.0", @@ -3251,7 +3749,7 @@ "inversify": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/inversify/-/inversify-5.0.1.tgz", - "integrity": "sha512-Ieh06s48WnEYGcqHepdsJUIJUXpwH5o5vodAX+DK2JA/gjy4EbEcQZxw+uFfzysmKjiLXGYwNG3qDZsKVMcINQ==" + "integrity": "sha1-UA1wmxQ0iWzloNWJFcSkIQ40+24=" }, "ip-regex": { "version": "4.3.0", @@ -3268,19 +3766,16 @@ "binary-extensions": "^2.0.0" } }, - "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "requires": { - "has": "^1.0.3" - } + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, "is-fullwidth-code-point": { @@ -3290,9 +3785,9 @@ "dev": true }, "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", "dev": true, "requires": { "is-extglob": "^2.1.1" @@ -3301,7 +3796,7 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", "dev": true }, "is-path-cwd": { @@ -3322,6 +3817,21 @@ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true + }, "is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -3334,10 +3844,19 @@ "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", "dev": true }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, "is2": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.9.tgz", - "integrity": "sha512-rZkHeBn9Zzq52sd9IUIV3a5mfwBY+o2HePMh0wkGBM4z4qjvy2GwVxQ6nNXSfw6MmVP6gf1QIlWjiOavhM3x5g==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.7.tgz", + "integrity": "sha512-4vBQoURAXC6hnLFxD4VW7uc04XiwTTl/8ydYJxKvPwkWQrSjInkuM5VZVg6BGr1/natq69zDuvO9lGpLClJqvA==", "dev": true, "requires": { "deep-is": "^0.1.3", @@ -3348,34 +3867,51 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", "dev": true }, "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=", "dev": true, "requires": { - "argparse": "^2.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" } }, "jszip": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.0.tgz", + "integrity": "sha512-LDfVtOLtOxb9RXkYOwPyNBTQDL4eUbqahtoY6x07GiDJHwSYvn8sHHIw8wINImV3MqbMNve2gSuM1DDqEKk09Q==", "dev": true, "requires": { "lie": "~3.3.0", @@ -3384,10 +3920,16 @@ "setimmediate": "^1.0.5" } }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, "lie": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "integrity": "sha1-3Pgt7lRfRgdNryAMfBxaCOD0D2o=", "dev": true, "requires": { "immediate": "~3.0.5" @@ -3410,12 +3952,63 @@ "requires": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", + "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", "dev": true }, "merge2": { @@ -3425,19 +4018,34 @@ "dev": true }, "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" + "mime-db": "1.52.0" } }, "minimatch": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", - "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "requires": { "brace-expansion": "^1.1.7" @@ -3475,21 +4083,40 @@ "yargs-unparser": "2.0.0" }, "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "requires": { - "ms": "2.1.2" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } + "argparse": "^2.0.1" + } + }, + "minimatch": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", + "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" } }, "ms": { @@ -3500,6 +4127,35 @@ } } }, + "monaco-page-objects": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/monaco-page-objects/-/monaco-page-objects-2.0.1.tgz", + "integrity": "sha512-OL2vzqA0YkKozdEEwj3fBYyJsv2jWZrG8nlKfho5epe//FQ7sY7QzaJ8OtfBD5mYGT7mwV1O649A/E33D5H6kA==", + "dev": true, + "requires": { + "clipboardy": "^2.3.0", + "clone-deep": "^4.0.1", + "compare-versions": "^3.5.1", + "fs-extra": "^10.0.0", + "ts-essentials": "^8.0.0" + }, + "dependencies": { + "ts-essentials": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-8.1.0.tgz", + "integrity": "sha512-34xALeQADWRYq9kbtprP4KdpTQ3v3BBIs/U4SpaP+C4++B8ijXY5NnILRJLchQVMzw7YBzKuGMUMrI9uT+ALVw==", + "dev": true, + "requires": {} + }, + "typescript": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz", + "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==", + "dev": true, + "peer": true + } + } + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -3512,31 +4168,40 @@ "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", "dev": true }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, - "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "dev": true + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { "wrappy": "1" } }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", "dev": true }, "p-limit": { @@ -3567,9 +4232,9 @@ } }, "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", + "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", "dev": true }, "path-exists": { @@ -3581,7 +4246,13 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", "dev": true }, "path-parse": { @@ -3605,7 +4276,7 @@ "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", "dev": true }, "picomatch": { @@ -3615,9 +4286,9 @@ "dev": true }, "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "dev": true }, "proxy-from-env": { @@ -3637,9 +4308,9 @@ } }, "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", + "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", "dev": true, "requires": { "side-channel": "^1.0.4" @@ -3661,9 +4332,9 @@ } }, "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -3687,23 +4358,21 @@ "reflect-metadata": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + "integrity": "sha1-Z648pXyXKiqhZCsQ/jY/4y1J3Ag=" }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", + "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", "dev": true, "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "path-parse": "^1.0.6" } }, "reusify": { @@ -3715,7 +4384,7 @@ "rimraf": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "integrity": "sha1-LtgVDSShbqhlHm1u8PR8QVjOejY=", "dev": true, "requires": { "glob": "^7.0.5" @@ -3733,31 +4402,24 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", "dev": true }, "selenium-webdriver": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", - "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.4.0.tgz", + "integrity": "sha512-Du+/xfpvNi9zHAeYgXhOWN9yH0hph+cuX+hHDBr7d+SbtQVcfNJwBzLsbdHrB1Wh7MHXFuIkSG88A9TRRQUx3g==", "dev": true, "requires": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", - "tmp": "0.0.30", - "xml2js": "^0.4.17" + "jszip": "^3.10.0", + "tmp": "^0.2.1", + "ws": ">=8.7.0" } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", "dev": true }, "serialize-javascript": { @@ -3775,6 +4437,30 @@ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", "dev": true }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true + }, "side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -3784,8 +4470,22 @@ "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", "object-inspect": "^1.9.0" + }, + "dependencies": { + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "dev": true + } } }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -3795,13 +4495,13 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "dev": true }, "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", + "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -3811,13 +4511,13 @@ "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", "dev": true, "requires": { "safe-buffer": "~5.1.0" @@ -3843,6 +4543,12 @@ "ansi-regex": "^5.0.1" } }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true + }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -3856,14 +4562,16 @@ "dev": true, "requires": { "has-flag": "^4.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + } } }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, "tcp-port-used": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.2.tgz", @@ -3886,18 +4594,29 @@ } }, "tmp": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", - "integrity": "sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dev": true, "requires": { - "os-tmpdir": "~1.0.1" + "rimraf": "^3.0.0" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", "dev": true, "requires": { "is-number": "^7.0.0" @@ -3914,26 +4633,18 @@ "make-error": "^1.1.1", "source-map-support": "^0.5.6", "yn": "^3.0.0" - }, - "dependencies": { - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - } } }, "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", "dev": true }, "tslint": { "version": "5.10.0", "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.10.0.tgz", - "integrity": "sha512-4Mra0B0RFVnof0oFMU0MDyclKmzNyFiZJHzAH6vJ28srZ+dXa/6a6prSJZHyJygrH72yVV2or3dY59EdXCnPaA==", + "integrity": "sha1-EeJrzLiK+gLdDZlWyuPUVAtfVMM=", "dev": true, "requires": { "babel-code-frame": "^6.22.0", @@ -3948,104 +4659,12 @@ "semver": "^5.3.0", "tslib": "^1.8.0", "tsutils": "^2.12.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } } }, "tsutils": { "version": "2.29.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "integrity": "sha1-MrSIUBRnrL7dS4VJhnOggSrKC5k=", "dev": true, "requires": { "tslib": "^1.8.1" @@ -4060,7 +4679,7 @@ "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "integrity": "sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw=", "dev": true }, "typed-rest-client": { @@ -4081,17 +4700,30 @@ "dev": true }, "underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz", + "integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==", + "dev": true + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, + "vscode-extension-tester-locators": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vscode-extension-tester-locators/-/vscode-extension-tester-locators-2.0.0.tgz", + "integrity": "sha512-ljmevi7R1K5uCiMpstKydh/sCA9TEiohxLmzX30ZZU5qE/ZNWz/5oLrxTdqN3EcSVW9ZXhExvrQFvHoYZxy9Ng==", + "dev": true, + "requires": {} + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -4116,29 +4748,46 @@ "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } } }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, - "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "ws": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", + "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", "dev": true, - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "dev": true + "requires": {} }, "y18n": { "version": "5.0.8", @@ -4182,7 +4831,7 @@ "yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", "dev": true, "requires": { "buffer-crc32": "~0.2.3", @@ -4190,9 +4839,9 @@ } }, "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.0.tgz", + "integrity": "sha512-kKfnnYkbTfrAdd0xICNFw7Atm8nKpLcLv9AZGEt+kczL/WQVai4e2V6ZN8U/O+iI6WrNuJjNNOyu4zfhl9D3Hg==", "dev": true }, "yocto-queue": { diff --git a/tests/e2e/package.json b/tests/e2e/package.json index a085d9c01ea..c5e3cb0ec53 100644 --- a/tests/e2e/package.json +++ b/tests/e2e/package.json @@ -13,6 +13,7 @@ "test-devworkspace-happy-path": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-devworkspace-happy-path.json", "test-wkspc-creation-and-ls": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-wkspc-creation-and-ls", "test-java-vertx": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-java-vertx.json", + "test-java-springboot": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-java-springboot.json", "test-git-ssh": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-git-ssh.json", "test-git-self-sign-cert": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-git-self-sign-cert.json", "test-git-publish-branch": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-git-publish-branch.json", @@ -36,17 +37,19 @@ "@types/mocha": "5.2.6", "@types/node": "11.13.4", "@types/rimraf": "2.0.2", - "@types/selenium-webdriver": "3.0.16", + "@types/selenium-webdriver": "4.1.3", "axios": "^0.25.0", "chai": "4.2.0", - "chromedriver": "^101.0.0", + "chromedriver": "^103.0.0", "mocha": "^9.1.3", "rimraf": "2.6.2", - "selenium-webdriver": "3.6.0", + "selenium-webdriver": "4.4.0", "ts-node": "8.0.3", "tslint": "5.10.0", "typed-rest-client": "1.8.5", - "typescript": "3.9.9" + "typescript": "3.9.9", + "monaco-page-objects": "2.0.1", + "vscode-extension-tester-locators": "2.0.0" }, "dependencies": { "@eclipse-che/api": "7.56.0", diff --git a/tests/e2e/tests/devfiles/JavaSpringBoot.spec.ts b/tests/e2e/tests/devfiles/JavaSpringBoot.spec.ts index 615f6034c00..b77c51356d1 100644 --- a/tests/e2e/tests/devfiles/JavaSpringBoot.spec.ts +++ b/tests/e2e/tests/devfiles/JavaSpringBoot.spec.ts @@ -21,6 +21,9 @@ import { ApiUrlResolver } from '../../utils/workspace/ApiUrlResolver'; import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; import { TimeoutConstants } from '../../TimeoutConstants'; import { Dashboard } from '../../pageobjects/dashboard/Dashboard'; +import { DriverHelper } from '../../utils/DriverHelper'; +import { By, until } from 'selenium-webdriver'; +import { Workbench } from 'monaco-page-objects'; const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); @@ -30,6 +33,7 @@ const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard); const createWorkspace: CreateWorkspace = e2eContainer.get(CLASSES.CreateWorkspace); const apiUrlResolver: ApiUrlResolver = e2eContainer.get(CLASSES.ApiUrlResolver); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); +const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper); const stack: string = 'Java Spring Boot'; const workspaceSampleName: string = 'java-spring-petclinic'; @@ -58,7 +62,27 @@ suite(`${stack} test`, async () => { test('Register running workspace', async () => { CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); - projectAndFileTests.waitWorkspaceReadiness(workspaceSampleName, workspaceRootFolderName, false); + test('Wait workspace readiness', async() => { + try { + await driverHelper.getDriver().wait(until.elementLocated(By.className('monaco-workbench'))); + } catch (err) { + if ((err as Error).name === 'WebDriverError') { + await new Promise(res => setTimeout(res, 3000)); + } else { + throw err; + } + } + let workbench = new Workbench(); + let activityBar = workbench.getActivityBar(); + let activityBarControls = await activityBar.getViewControls(); + // let sidebarContent = activityBar.getViewControl(); + // let sidebarViewSections = await sidebarContent.getSections(); + Logger.debug(`Editor sections:`); + activityBarControls.forEach(async control => { + Logger.debug(`${await control.getTitle()}`); + }); + }); + // projectAndFileTests.waitWorkspaceReadiness(workspaceSampleName, workspaceRootFolderName, false); }); suite.skip('Test opening file', async () => { diff --git a/tests/e2e/utils/DriverHelper.ts b/tests/e2e/utils/DriverHelper.ts index 04cac5b698e..5b6700ab8e5 100644 --- a/tests/e2e/utils/DriverHelper.ts +++ b/tests/e2e/utils/DriverHelper.ts @@ -698,10 +698,9 @@ export class DriverHelper { Logger.trace(`DriverHelper.scrollTo ${elementLocator}`); for (let i = 0; i < attempts; i++) { - // let element: WebElement; + let element: WebElement; try { - // element = await this.waitPresence(elementLocator, polling); - await this.waitPresence(elementLocator, polling); + element = await this.waitPresence(elementLocator, polling); } catch (err) { if (i >= attempts - 1) { Logger.error(`DriverHelper.scrollTo - failed with exception, out of attempts - ${err}`); @@ -718,7 +717,7 @@ export class DriverHelper { } try { - // await this.getAction().mouseMove(element).perform(); + await this.getAction().move({origin: element}).perform(); return; } catch (err) { if (err instanceof error.StaleElementReferenceError) { From 9959d0f7d7cb86870b36878cb2a52323a7aa67cc Mon Sep 17 00:00:00 2001 From: Tibor Dancs Date: Mon, 5 Sep 2022 10:04:43 +0200 Subject: [PATCH 3/5] Linting repository, splitting codebase into folders, updating package.json Signed-off-by: Tibor Dancs --- tests/e2e/index.ts | 54 ++++++++-------- tests/e2e/initDevfileTests.sh | 6 +- tests/e2e/initPluginTest.sh | 3 +- tests/e2e/inversify.config.ts | 64 +++++++++---------- tests/e2e/inversify.types.ts | 10 +-- ...les.json => mocha-all-devfiles-theia.json} | 4 +- ...ssh.json => mocha-all-factories-code.json} | 2 +- ...es.json => mocha-all-factories-theia.json} | 4 +- tests/e2e/mocha-all-plugins-code.json | 10 +++ ...gins.json => mocha-all-plugins-theia.json} | 4 +- tests/e2e/{mocha.json => mocha-code.json} | 2 +- ...nector.json => mocha-connector-theia.json} | 2 +- .../mocha-devworkspace-happy-path-code.json | 10 +++ ... mocha-devworkspace-happy-path-theia.json} | 2 +- tests/e2e/mocha-factory-code.json | 10 +++ ...-factory.json => mocha-factory-theia.json} | 2 +- tests/e2e/mocha-git-publish-branch-theia.json | 11 ++++ tests/e2e/mocha-git-self-sign-cert-theia.json | 11 ++++ ...ign-cert.json => mocha-git-ssh-theia.json} | 2 +- ...branch.json => mocha-happy-path-code.json} | 2 +- ...-path.json => mocha-happy-path-theia.json} | 2 +- ...-java-vertx.json => mocha-java-maven.json} | 2 +- ...d.json => mocha-java-springboot-code.json} | 2 +- tests/e2e/mocha-java-springboot-theia.json | 9 +++ ...and-ls.json => mocha-java-vertx-code.json} | 2 +- tests/e2e/mocha-java-vertx-theia.json | 9 +++ tests/e2e/mocha-load-theia.json | 9 +++ ...-java-springboot.json => mocha-scala.json} | 2 +- tests/e2e/mocha-theia.json | 8 +++ .../mocha-wkspc-creation-and-ls-theia.json | 9 +++ tests/e2e/package.json | 49 ++++++++------ .../workspace-details/WorkspaceDetails.ts | 2 +- .../ide/{ => theia}/ContextMenu.ts | 8 +-- .../pageobjects/ide/{ => theia}/DebugView.ts | 12 ++-- .../ide/{ => theia}/DialogWindow.ts | 8 +-- .../e2e/pageobjects/ide/{ => theia}/Editor.ts | 10 +-- tests/e2e/pageobjects/ide/{ => theia}/Ide.ts | 10 +-- .../ide/{ => theia}/LeftToolBar.ts | 8 +-- .../ide/{ => theia}/NavigationBar.ts | 14 ++-- .../ide/{ => theia}/NotificationCenter.ts | 8 +-- .../ide/{ => theia}/OpenDialogWidget.ts | 12 ++-- .../ide/{ => theia}/OpenEditors.ts | 8 +-- .../ide/{ => theia}/OpenWorkspaceWidget.ts | 8 +-- .../ide/{ => theia}/PreviewWidget.ts | 10 +-- .../ide/{ => theia}/ProjectTree.ts | 12 ++-- .../ide/{ => theia}/QuickOpenContainer.ts | 8 +-- .../ide/{ => theia}/RightToolBar.ts | 8 +-- .../pageobjects/ide/{ => theia}/Terminal.ts | 10 +-- .../pageobjects/ide/{ => theia}/TopMenu.ts | 10 +-- .../plugins/GitHubPullRequestPlugin.ts | 10 +-- .../ide/{ => theia}/plugins/GitPlugin.ts | 8 +-- .../{ => theia}/plugins/KubernetesPlugin.ts | 8 +-- .../{ => theia}/plugins/OpenshiftPlugin.ts | 8 +-- .../ide/{ => theia}/plugins/PluginsView.ts | 8 +-- .../{ => theia}/CSlashCPlusPlus.spec.ts | 28 ++++---- .../devfiles/{ => theia}/DevfileSmoke.spec.ts | 26 ++++---- .../devfiles/{ => theia}/DotNetCore.spec.ts | 28 ++++---- .../e2e/tests/devfiles/{ => theia}/Go.spec.ts | 32 +++++----- .../devfiles/{ => theia}/JavaMaven.spec.ts | 26 ++++---- .../{ => theia}/JavaSpringBoot.spec.ts | 40 ++++++------ .../devfiles/{ => theia}/JavaVertx.spec.ts | 26 ++++---- .../tests/devfiles/{ => theia}/NodeJS.spec.ts | 26 ++++---- .../devfiles/{ => theia}/PHPSimple.spec.ts | 28 ++++---- .../tests/devfiles/{ => theia}/Python.spec.ts | 26 ++++---- .../devfiles/{ => theia}/PythonDjango.spec.ts | 22 +++---- .../devfiles/{ => theia}/Quarkus.spec.ts | 26 ++++---- .../tests/devfiles/{ => theia}/Scala.spec.ts | 26 ++++---- .../tests/e2e/{ => theia}/FactoryUrl.spec.ts | 20 +++--- .../e2e/{ => theia}/GitPublishBranch.spec.ts | 34 +++++----- .../e2e/{ => theia}/GitSelfSignCert.spec.ts | 38 +++++------ .../e2e/tests/e2e/{ => theia}/GitSsh.spec.ts | 44 ++++++------- .../{ => theia}/OpenshiftConnector.spec.ts | 44 ++++++------- ...ectUrlFactoryWithKeepDirectoryTest.spec.ts | 24 +++---- ...DirectUrlFactoryWithRootFolderTest.spec.ts | 24 +++---- ...ctUrlFactoryWithSpecificBranchTest.spec.ts | 24 +++---- .../{ => theia}/DevWorkspaceHappyPath.spec.ts | 36 +++++------ .../{ => theia}/HappyPath.spec.ts | 43 +++++++------ .../intelij/IntelijOpenWorkspace.spec.ts | 2 +- .../load_test/{ => theia}/LoadTest.spec.ts | 21 +++--- .../GitHubPullRequestPlugin.spec.ts | 41 ++++++------ .../{ => theia}/InstallPluginUsingUI.spec.ts | 27 ++++---- .../plugins/{ => theia}/JavaPlugin.spec.ts | 32 +++++----- .../plugins/{ => theia}/PhpPlugin.spec.ts | 30 ++++----- .../plugins/{ => theia}/PythonPlugin.spec.ts | 30 ++++----- .../{ => theia}/TypescriptPlugin.spec.ts | 42 ++++++------ .../VscodeKubernetesPlugin.spec.ts | 30 ++++----- .../VscodeShellcheckPlugin.spec.ts | 28 ++++---- .../{ => theia}/VscodeValePlugin.spec.ts | 26 ++++---- .../{ => theia}/VscodeXmlPlugin.spec.ts | 28 ++++---- .../{ => theia}/VscodeYamlPlugin.spec.ts | 28 ++++---- .../CodeExecutionTestsTheia.ts} | 32 +++++----- .../LanguageServerTestsTheia.ts} | 18 +++--- .../ProjectAndFileTestsTheia.ts} | 16 ++--- .../WorkspaceHandlingTestsTheia.ts} | 46 ++++++------- .../PreferencesHandlerTheia.ts} | 22 +++---- 95 files changed, 912 insertions(+), 804 deletions(-) rename tests/e2e/{mocha-all-devfiles.json => mocha-all-devfiles-theia.json} (69%) rename tests/e2e/{mocha-git-ssh.json => mocha-all-factories-code.json} (83%) rename tests/e2e/{mocha-all-factories.json => mocha-all-factories-theia.json} (58%) create mode 100644 tests/e2e/mocha-all-plugins-code.json rename tests/e2e/{mocha-all-plugins.json => mocha-all-plugins-theia.json} (65%) rename tests/e2e/{mocha.json => mocha-code.json} (62%) rename tests/e2e/{mocha-connector.json => mocha-connector-theia.json} (74%) create mode 100644 tests/e2e/mocha-devworkspace-happy-path-code.json rename tests/e2e/{mocha-devworkspace-happy-path.json => mocha-devworkspace-happy-path-theia.json} (75%) create mode 100644 tests/e2e/mocha-factory-code.json rename tests/e2e/{mocha-factory.json => mocha-factory-theia.json} (81%) create mode 100644 tests/e2e/mocha-git-publish-branch-theia.json create mode 100644 tests/e2e/mocha-git-self-sign-cert-theia.json rename tests/e2e/{mocha-git-self-sign-cert.json => mocha-git-ssh-theia.json} (80%) rename tests/e2e/{mocha-git-publish-branch.json => mocha-happy-path-code.json} (80%) rename tests/e2e/{mocha-happy-path.json => mocha-happy-path-theia.json} (80%) rename tests/e2e/{mocha-java-vertx.json => mocha-java-maven.json} (91%) rename tests/e2e/{mocha-load.json => mocha-java-springboot-code.json} (77%) create mode 100644 tests/e2e/mocha-java-springboot-theia.json rename tests/e2e/{mocha-wkspc-creation-and-ls.json => mocha-java-vertx-code.json} (70%) create mode 100644 tests/e2e/mocha-java-vertx-theia.json create mode 100644 tests/e2e/mocha-load-theia.json rename tests/e2e/{mocha-java-springboot.json => mocha-scala.json} (89%) create mode 100644 tests/e2e/mocha-theia.json create mode 100644 tests/e2e/mocha-wkspc-creation-and-ls-theia.json rename tests/e2e/pageobjects/ide/{ => theia}/ContextMenu.ts (90%) rename tests/e2e/pageobjects/ide/{ => theia}/DebugView.ts (90%) rename tests/e2e/pageobjects/ide/{ => theia}/DialogWindow.ts (94%) rename tests/e2e/pageobjects/ide/{ => theia}/Editor.ts (98%) rename tests/e2e/pageobjects/ide/{ => theia}/Ide.ts (98%) rename tests/e2e/pageobjects/ide/{ => theia}/LeftToolBar.ts (93%) rename tests/e2e/pageobjects/ide/{ => theia}/NavigationBar.ts (81%) rename tests/e2e/pageobjects/ide/{ => theia}/NotificationCenter.ts (93%) rename tests/e2e/pageobjects/ide/{ => theia}/OpenDialogWidget.ts (90%) rename tests/e2e/pageobjects/ide/{ => theia}/OpenEditors.ts (93%) rename tests/e2e/pageobjects/ide/{ => theia}/OpenWorkspaceWidget.ts (89%) rename tests/e2e/pageobjects/ide/{ => theia}/PreviewWidget.ts (94%) rename tests/e2e/pageobjects/ide/{ => theia}/ProjectTree.ts (97%) rename tests/e2e/pageobjects/ide/{ => theia}/QuickOpenContainer.ts (91%) rename tests/e2e/pageobjects/ide/{ => theia}/RightToolBar.ts (84%) rename tests/e2e/pageobjects/ide/{ => theia}/Terminal.ts (97%) rename tests/e2e/pageobjects/ide/{ => theia}/TopMenu.ts (93%) rename tests/e2e/pageobjects/ide/{ => theia}/plugins/GitHubPullRequestPlugin.ts (94%) rename tests/e2e/pageobjects/ide/{ => theia}/plugins/GitPlugin.ts (96%) rename tests/e2e/pageobjects/ide/{ => theia}/plugins/KubernetesPlugin.ts (95%) rename tests/e2e/pageobjects/ide/{ => theia}/plugins/OpenshiftPlugin.ts (94%) rename tests/e2e/pageobjects/ide/{ => theia}/plugins/PluginsView.ts (97%) rename tests/e2e/tests/devfiles/{ => theia}/CSlashCPlusPlus.spec.ts (71%) rename tests/e2e/tests/devfiles/{ => theia}/DevfileSmoke.spec.ts (62%) rename tests/e2e/tests/devfiles/{ => theia}/DotNetCore.spec.ts (74%) rename tests/e2e/tests/devfiles/{ => theia}/Go.spec.ts (69%) rename tests/e2e/tests/devfiles/{ => theia}/JavaMaven.spec.ts (68%) rename tests/e2e/tests/devfiles/{ => theia}/JavaSpringBoot.spec.ts (76%) rename tests/e2e/tests/devfiles/{ => theia}/JavaVertx.spec.ts (69%) rename tests/e2e/tests/devfiles/{ => theia}/NodeJS.spec.ts (71%) rename tests/e2e/tests/devfiles/{ => theia}/PHPSimple.spec.ts (71%) rename tests/e2e/tests/devfiles/{ => theia}/Python.spec.ts (66%) rename tests/e2e/tests/devfiles/{ => theia}/PythonDjango.spec.ts (74%) rename tests/e2e/tests/devfiles/{ => theia}/Quarkus.spec.ts (73%) rename tests/e2e/tests/devfiles/{ => theia}/Scala.spec.ts (72%) rename tests/e2e/tests/e2e/{ => theia}/FactoryUrl.spec.ts (66%) rename tests/e2e/tests/e2e/{ => theia}/GitPublishBranch.spec.ts (79%) rename tests/e2e/tests/e2e/{ => theia}/GitSelfSignCert.spec.ts (77%) rename tests/e2e/tests/e2e/{ => theia}/GitSsh.spec.ts (80%) rename tests/e2e/tests/e2e/{ => theia}/OpenshiftConnector.spec.ts (80%) rename tests/e2e/tests/e2e/{ => theia}/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.ts (69%) rename tests/e2e/tests/e2e/{ => theia}/factories/DirectUrlFactoryWithRootFolderTest.spec.ts (68%) rename tests/e2e/tests/e2e/{ => theia}/factories/DirectUrlFactoryWithSpecificBranchTest.spec.ts (68%) rename tests/e2e/tests/e2e_happy_path/{ => theia}/DevWorkspaceHappyPath.spec.ts (92%) rename tests/e2e/tests/e2e_happy_path/{ => theia}/HappyPath.spec.ts (91%) rename tests/e2e/tests/load_test/{ => theia}/LoadTest.spec.ts (70%) rename tests/e2e/tests/plugins/{ => theia}/GitHubPullRequestPlugin.spec.ts (81%) rename tests/e2e/tests/plugins/{ => theia}/InstallPluginUsingUI.spec.ts (73%) rename tests/e2e/tests/plugins/{ => theia}/JavaPlugin.spec.ts (76%) rename tests/e2e/tests/plugins/{ => theia}/PhpPlugin.spec.ts (82%) rename tests/e2e/tests/plugins/{ => theia}/PythonPlugin.spec.ts (73%) rename tests/e2e/tests/plugins/{ => theia}/TypescriptPlugin.spec.ts (82%) rename tests/e2e/tests/plugins/{ => theia}/VscodeKubernetesPlugin.spec.ts (75%) rename tests/e2e/tests/plugins/{ => theia}/VscodeShellcheckPlugin.spec.ts (78%) rename tests/e2e/tests/plugins/{ => theia}/VscodeValePlugin.spec.ts (78%) rename tests/e2e/tests/plugins/{ => theia}/VscodeXmlPlugin.spec.ts (79%) rename tests/e2e/tests/plugins/{ => theia}/VscodeYamlPlugin.spec.ts (78%) rename tests/e2e/testsLibrary/{CodeExecutionTests.ts => theia/CodeExecutionTestsTheia.ts} (89%) rename tests/e2e/testsLibrary/{LanguageServerTests.ts => theia/LanguageServerTestsTheia.ts} (94%) rename tests/e2e/testsLibrary/{ProjectAndFileTests.ts => theia/ProjectAndFileTestsTheia.ts} (87%) rename tests/e2e/testsLibrary/{WorkspaceHandlingTests.ts => theia/WorkspaceHandlingTestsTheia.ts} (78%) rename tests/e2e/utils/{PreferencesHandler.ts => theia/PreferencesHandlerTheia.ts} (88%) diff --git a/tests/e2e/index.ts b/tests/e2e/index.ts index 6b51da14082..71b5624b445 100644 --- a/tests/e2e/index.ts +++ b/tests/e2e/index.ts @@ -10,7 +10,7 @@ export * from './utils/AnimationChecker'; export * from './utils/BrowserTabsUtil'; export * from './utils/DriverHelper'; export * from './utils/Logger'; -export * from './utils/PreferencesHandler'; +export * from './utils/theia/PreferencesHandlerTheia'; export * from './utils/requestHandlers/CheApiRequestHandler'; export * from './utils/requestHandlers/headers/CheMultiuserAuthorizationHeaderHandler'; export * from './utils/requestHandlers/headers/IAuthorizationHeaderHandler'; @@ -30,28 +30,28 @@ export * from './pageobjects/dashboard/Dashboard'; export * from './pageobjects/dashboard/workspace-details/WorkspaceDetailsPlugins'; export * from './pageobjects/dashboard/workspace-details/WorkspaceDetails'; export * from './pageobjects/dashboard/Workspaces'; -export * from './pageobjects/ide/ContextMenu'; -export * from './pageobjects/ide/DebugView'; -export * from './pageobjects/ide/DialogWindow'; -export * from './pageobjects/ide/Editor'; -export * from './pageobjects/ide/Ide'; -export * from './pageobjects/ide/LeftToolBar'; -export * from './pageobjects/ide/NavigationBar'; -export * from './pageobjects/ide/NotificationCenter'; -export * from './pageobjects/ide/OpenDialogWidget'; -export * from './pageobjects/ide/OpenEditors'; -export * from './pageobjects/ide/OpenWorkspaceWidget'; -export * from './pageobjects/ide/plugins/GitHubPullRequestPlugin'; -export * from './pageobjects/ide/plugins/GitPlugin'; -export * from './pageobjects/ide/plugins/KubernetesPlugin'; -export * from './pageobjects/ide/plugins/OpenshiftPlugin'; -export * from './pageobjects/ide/plugins/PluginsView'; -export * from './pageobjects/ide/PreviewWidget'; -export * from './pageobjects/ide/ProjectTree'; -export * from './pageobjects/ide/QuickOpenContainer'; -export * from './pageobjects/ide/RightToolBar'; -export * from './pageobjects/ide/Terminal'; -export * from './pageobjects/ide/TopMenu'; +export * from './pageobjects/ide/theia/ContextMenu'; +export * from './pageobjects/ide/theia/DebugView'; +export * from './pageobjects/ide/theia/DialogWindow'; +export * from './pageobjects/ide/theia/Editor'; +export * from './pageobjects/ide/theia/Ide'; +export * from './pageobjects/ide/theia/LeftToolBar'; +export * from './pageobjects/ide/theia/NavigationBar'; +export * from './pageobjects/ide/theia/NotificationCenter'; +export * from './pageobjects/ide/theia/OpenDialogWidget'; +export * from './pageobjects/ide/theia/OpenEditors'; +export * from './pageobjects/ide/theia/OpenWorkspaceWidget'; +export * from './pageobjects/ide/theia/plugins/GitHubPullRequestPlugin'; +export * from './pageobjects/ide/theia/plugins/GitPlugin'; +export * from './pageobjects/ide/theia/plugins/KubernetesPlugin'; +export * from './pageobjects/ide/theia/plugins/OpenshiftPlugin'; +export * from './pageobjects/ide/theia/plugins/PluginsView'; +export * from './pageobjects/ide/theia/PreviewWidget'; +export * from './pageobjects/ide/theia/ProjectTree'; +export * from './pageobjects/ide/theia/QuickOpenContainer'; +export * from './pageobjects/ide/theia/RightToolBar'; +export * from './pageobjects/ide/theia/Terminal'; +export * from './pageobjects/ide/theia/TopMenu'; export * from './pageobjects/login/ICheLoginPage'; export * from './pageobjects/login/IOcpLoginPage'; export * from './pageobjects/login/MultiUserLoginPage'; @@ -62,7 +62,7 @@ export * from './pageobjects/openshift/CheLoginPage'; export * from './pageobjects/openshift/OcpLoginPage'; export * from './pageobjects/third-parties/GitLoginPage'; export * from './pageobjects/third-parties/GitOauthAppsSettings'; -export * from './testsLibrary/CodeExecutionTests'; -export * from './testsLibrary/LanguageServerTests'; -export * from './testsLibrary/ProjectAndFileTests'; -export * from './testsLibrary/WorkspaceHandlingTests'; +export * from './testsLibrary/theia/CodeExecutionTestsTheia'; +export * from './testsLibrary/theia/LanguageServerTestsTheia'; +export * from './testsLibrary/theia/ProjectAndFileTestsTheia'; +export * from './testsLibrary/theia/WorkspaceHandlingTestsTheia'; diff --git a/tests/e2e/initDevfileTests.sh b/tests/e2e/initDevfileTests.sh index 1e059e9eb2c..4bae9cc7712 100755 --- a/tests/e2e/initDevfileTests.sh +++ b/tests/e2e/initDevfileTests.sh @@ -9,7 +9,8 @@ launchAllUserstories(){ echo "Launching all userstories"; echo "" - npm run lint && npm run tsc && mocha --config mocha-all-devfiles.json ; + # TODO: Handle editor switching + npm run lint && npm run tsc && mocha --config mocha-all-devfiles-theia.json ; } launchSingleUserstory(){ @@ -17,7 +18,8 @@ launchSingleUserstory(){ echo "Launching the \"${USERSTORY}\" userstory"; echo "" - tsc && mocha --config mocha-single-devfile.json --spec dist/tests/login/Login.spec.js --spec dist/tests/devfiles/${USERSTORY}.spec.js ; + # TODO: Handle editor switching + tsc && mocha --config mocha-single-devfile.json --spec dist/tests/login/Login.spec.js --spec dist/tests/devfiles/theia/${USERSTORY}.spec.js ; } checkUserstoryName(){ diff --git a/tests/e2e/initPluginTest.sh b/tests/e2e/initPluginTest.sh index c86cf889d8c..faa66b85de4 100755 --- a/tests/e2e/initPluginTest.sh +++ b/tests/e2e/initPluginTest.sh @@ -6,4 +6,5 @@ echo "" echo "Launching the \"${USERSTORY}\" userstory"; echo "" -npm run init-mocha-opts -- --spec dist/tests/plugins/${USERSTORY}.spec.js +# TODO: Handle editor switching +npm run init-mocha-opts -- --spec dist/tests/plugins/theia/${USERSTORY}.spec.js diff --git a/tests/e2e/inversify.config.ts b/tests/e2e/inversify.config.ts index ddb16453c21..38c7ea2bf6a 100644 --- a/tests/e2e/inversify.config.ts +++ b/tests/e2e/inversify.config.ts @@ -19,30 +19,30 @@ import { TestConstants } from './TestConstants'; import { ICheLoginPage } from './pageobjects/login/ICheLoginPage'; import { RegularUserOcpCheLoginPage } from './pageobjects/login/RegularUserOcpCheLoginPage'; import { MultiUserLoginPage } from './pageobjects/login/MultiUserLoginPage'; -import { ContextMenu } from './pageobjects/ide/ContextMenu'; +import { ContextMenu } from './pageobjects/ide/theia/ContextMenu'; import { DriverHelper } from './utils/DriverHelper'; import { Dashboard } from './pageobjects/dashboard/Dashboard'; import { Workspaces } from './pageobjects/dashboard/Workspaces'; import { WorkspaceDetails } from './pageobjects/dashboard/workspace-details/WorkspaceDetails'; import { WorkspaceDetailsPlugins } from './pageobjects/dashboard/workspace-details/WorkspaceDetailsPlugins'; -import { Ide } from './pageobjects/ide/Ide'; -import { ProjectTree } from './pageobjects/ide/ProjectTree'; -import { OpenEditors } from './pageobjects/ide/OpenEditors'; -import { Editor } from './pageobjects/ide/Editor'; -import { TopMenu } from './pageobjects/ide/TopMenu'; -import { QuickOpenContainer } from './pageobjects/ide/QuickOpenContainer'; -import { PreviewWidget } from './pageobjects/ide/PreviewWidget'; -import { GitPlugin } from './pageobjects/ide/plugins/GitPlugin'; -import { RightToolBar } from './pageobjects/ide/RightToolBar'; -import { Terminal } from './pageobjects/ide/Terminal'; -import { DebugView } from './pageobjects/ide/DebugView'; -import { DialogWindow } from './pageobjects/ide/DialogWindow'; +import { Ide } from './pageobjects/ide/theia/Ide'; +import { ProjectTree } from './pageobjects/ide/theia/ProjectTree'; +import { OpenEditors } from './pageobjects/ide/theia/OpenEditors'; +import { Editor } from './pageobjects/ide/theia/Editor'; +import { TopMenu } from './pageobjects/ide/theia/TopMenu'; +import { QuickOpenContainer } from './pageobjects/ide/theia/QuickOpenContainer'; +import { PreviewWidget } from './pageobjects/ide/theia/PreviewWidget'; +import { GitPlugin } from './pageobjects/ide/theia/plugins/GitPlugin'; +import { RightToolBar } from './pageobjects/ide/theia/RightToolBar'; +import { Terminal } from './pageobjects/ide/theia/Terminal'; +import { DebugView } from './pageobjects/ide/theia/DebugView'; +import { DialogWindow } from './pageobjects/ide/theia/DialogWindow'; import { ScreenCatcher } from './utils/ScreenCatcher'; import { OcpLoginPage } from './pageobjects/openshift/OcpLoginPage'; -import { OpenWorkspaceWidget } from './pageobjects/ide/OpenWorkspaceWidget'; +import { OpenWorkspaceWidget } from './pageobjects/ide/theia/OpenWorkspaceWidget'; import { CheLoginPage } from './pageobjects/openshift/CheLoginPage'; -import { NotificationCenter } from './pageobjects/ide/NotificationCenter'; -import { PreferencesHandler } from './utils/PreferencesHandler'; +import { NotificationCenter } from './pageobjects/ide/theia/NotificationCenter'; +import { PreferencesHandlerTheia } from './utils/theia/PreferencesHandlerTheia'; import { IAuthorizationHeaderHandler } from './utils/requestHandlers/headers/IAuthorizationHeaderHandler'; import { CheMultiuserAuthorizationHeaderHandler } from './utils/requestHandlers/headers/CheMultiuserAuthorizationHeaderHandler'; import { CheMultiuserTokenHandler } from './utils/requestHandlers/tokens/CheMultiuserTokenHandler'; @@ -51,24 +51,24 @@ import { CheApiRequestHandler } from './utils/requestHandlers/CheApiRequestHandl import { CheGitApi } from './utils/VCS/CheGitApi'; import { GitHubUtil } from './utils/VCS/github/GitHubUtil'; import { CreateWorkspace } from './pageobjects/dashboard/CreateWorkspace'; -import { OpenshiftPlugin } from './pageobjects/ide/plugins/OpenshiftPlugin'; -import { OpenDialogWidget } from './pageobjects/ide/OpenDialogWidget'; +import { OpenshiftPlugin } from './pageobjects/ide/theia/plugins/OpenshiftPlugin'; +import { OpenDialogWidget } from './pageobjects/ide/theia/OpenDialogWidget'; import { UpdateAccountInformationPage } from './pageobjects/login/UpdateAccountInformationPage'; -import { LeftToolBar } from './pageobjects/ide/LeftToolBar'; -import { KubernetesPlugin } from './pageobjects/ide/plugins/KubernetesPlugin'; +import { LeftToolBar } from './pageobjects/ide/theia/LeftToolBar'; +import { KubernetesPlugin } from './pageobjects/ide/theia/plugins/KubernetesPlugin'; import { BrowserTabsUtil } from './utils/BrowserTabsUtil'; -import { PluginsView } from './pageobjects/ide/plugins/PluginsView'; -import { LanguageServerTests } from './testsLibrary/LanguageServerTests'; -import { CodeExecutionTests } from './testsLibrary/CodeExecutionTests'; -import { ProjectAndFileTests } from './testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from './testsLibrary/WorkspaceHandlingTests'; -import { GitHubPullRequestPlugin } from './pageobjects/ide/plugins/GitHubPullRequestPlugin'; +import { PluginsView } from './pageobjects/ide/theia/plugins/PluginsView'; +import { LanguageServerTestsTheia } from './testsLibrary/theia/LanguageServerTestsTheia'; +import { CodeExecutionTestsTheia } from './testsLibrary/theia/CodeExecutionTestsTheia'; +import { ProjectAndFileTestsTheia } from './testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTestsTheia } from './testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { GitHubPullRequestPlugin } from './pageobjects/ide/theia/plugins/GitHubPullRequestPlugin'; import { GitLoginPage } from './pageobjects/third-parties/GitLoginPage'; import { GitOauthAppsSettings } from './pageobjects/third-parties/GitOauthAppsSettings'; import { AnimationChecker } from './utils/AnimationChecker'; import { WorkspaceNameHandler } from './utils/WorkspaceNameHandler'; import { Sanitizer } from './utils/Sanitizer'; -import { NavigationBar } from './pageobjects/ide/NavigationBar'; +import { NavigationBar } from './pageobjects/ide/theia/NavigationBar'; import { ApiUrlResolver } from './utils/workspace/ApiUrlResolver'; import { ITestWorkspaceUtil } from './utils/workspace/ITestWorkspaceUtil'; @@ -112,7 +112,7 @@ e2eContainer.bind(CLASSES.OcpLoginPage).to(OcpLoginPage); e2eContainer.bind(CLASSES.OpenWorkspaceWidget).to(OpenWorkspaceWidget); e2eContainer.bind(CLASSES.CheLoginPage).to(CheLoginPage); e2eContainer.bind(CLASSES.NotificationCenter).to(NotificationCenter); -e2eContainer.bind(CLASSES.PreferencesHandler).to(PreferencesHandler); +e2eContainer.bind(CLASSES.PreferencesHandlerTheia).to(PreferencesHandlerTheia); e2eContainer.bind(CLASSES.CheApiRequestHandler).to(CheApiRequestHandler); e2eContainer.bind(CLASSES.CheGitApi).to(CheGitApi); e2eContainer.bind(CLASSES.GitHubUtil).to(GitHubUtil); @@ -122,10 +122,10 @@ e2eContainer.bind(CLASSES.OpenDialogWidget).to(OpenDialogWidge e2eContainer.bind(CLASSES.UpdateAccountInformationPage).to(UpdateAccountInformationPage); e2eContainer.bind(CLASSES.KubernetesPlugin).to(KubernetesPlugin); e2eContainer.bind(CLASSES.PluginsView).to(PluginsView); -e2eContainer.bind(CLASSES.LanguageServerTests).to(LanguageServerTests); -e2eContainer.bind(CLASSES.CodeExecutionTests).to(CodeExecutionTests); -e2eContainer.bind(CLASSES.ProjectAndFileTests).to(ProjectAndFileTests); -e2eContainer.bind(CLASSES.WorkspaceHandlingTests).to(WorkspaceHandlingTests); +e2eContainer.bind(CLASSES.LanguageServerTestsTheia).to(LanguageServerTestsTheia); +e2eContainer.bind(CLASSES.CodeExecutionTestsTheia).to(CodeExecutionTestsTheia); +e2eContainer.bind(CLASSES.ProjectAndFileTestsTheia).to(ProjectAndFileTestsTheia); +e2eContainer.bind(CLASSES.WorkspaceHandlingTestsTheia).to(WorkspaceHandlingTestsTheia); e2eContainer.bind(CLASSES.WorkspaceNameHandler).to(WorkspaceNameHandler); e2eContainer.bind(CLASSES.GitHubPullRequestPlugin).to(GitHubPullRequestPlugin); e2eContainer.bind(CLASSES.GitLoginPage).to(GitLoginPage); diff --git a/tests/e2e/inversify.types.ts b/tests/e2e/inversify.types.ts index 57c60fccf86..bb12b994d0b 100644 --- a/tests/e2e/inversify.types.ts +++ b/tests/e2e/inversify.types.ts @@ -48,7 +48,7 @@ const CLASSES = { CheGitApi: 'CheGitApi', GitPlugin: 'GitPlugin', NotificationCenter: 'NotificationCenter', - PreferencesHandler: 'PreferencesHandler', + PreferencesHandlerTheia: 'PreferencesHandlerTheia', CheApiRequestHandler: 'CheApiRequestHandler', CreateWorkspace: 'CreateWorkspace', OpenDialogWidget: 'OpenDialogWidget', @@ -56,10 +56,10 @@ const CLASSES = { KubernetesPlugin: 'KubernetesPlugin', BrowserTabsUtil: 'BrowserTabsUtil', PluginsView: 'PluginsView', - LanguageServerTests: 'LanguageServerTests', - CodeExecutionTests: 'CodeExecutionTests', - ProjectAndFileTests: 'ProjectAndFileTests', - WorkspaceHandlingTests: 'WorkspaceHandlingTests', + LanguageServerTestsTheia: 'LanguageServerTestsTheia', + CodeExecutionTestsTheia: 'CodeExecutionTestsTheia', + ProjectAndFileTestsTheia: 'ProjectAndFileTestsTheia', + WorkspaceHandlingTestsTheia: 'WorkspaceHandlingTestsTheia', WorkspaceNameHandler: 'WorkspaceNameHandler', GitHubPullRequestPlugin: 'GitHubPullRequestPlugin', GitLoginPage: 'GitLoginPage', diff --git a/tests/e2e/mocha-all-devfiles.json b/tests/e2e/mocha-all-devfiles-theia.json similarity index 69% rename from tests/e2e/mocha-all-devfiles.json rename to tests/e2e/mocha-all-devfiles-theia.json index 67b281655e2..6ee9f3e2378 100644 --- a/tests/e2e/mocha-all-devfiles.json +++ b/tests/e2e/mocha-all-devfiles-theia.json @@ -6,7 +6,7 @@ "require": "source-map-support/register", "spec": [ "dist/tests/login/Login.spec.js", - "dist/tests/devfiles/*.spec.js", - "dist/tests/e2e/FactoryUrl.spec.js" + "dist/tests/devfiles/theia/*.spec.js", + "dist/tests/e2e/theia/FactoryUrl.spec.js" ] } diff --git a/tests/e2e/mocha-git-ssh.json b/tests/e2e/mocha-all-factories-code.json similarity index 83% rename from tests/e2e/mocha-git-ssh.json rename to tests/e2e/mocha-all-factories-code.json index 80c18db0aa4..be9febe44d2 100644 --- a/tests/e2e/mocha-git-ssh.json +++ b/tests/e2e/mocha-all-factories-code.json @@ -6,6 +6,6 @@ "full-trace": true, "require": "source-map-support/register", "spec": [ - "dist/tests/e2e/GitSsh.spec.js" + "dist/tests/login/Login.spec.js" ] } diff --git a/tests/e2e/mocha-all-factories.json b/tests/e2e/mocha-all-factories-theia.json similarity index 58% rename from tests/e2e/mocha-all-factories.json rename to tests/e2e/mocha-all-factories-theia.json index efad2697432..93601a49854 100644 --- a/tests/e2e/mocha-all-factories.json +++ b/tests/e2e/mocha-all-factories-theia.json @@ -7,7 +7,7 @@ "require": "source-map-support/register", "spec": [ "dist/tests/login/Login.spec.js", - "dist/tests/e2e/factories/DirectUrlFactoryWithRootFolderTest.spec.js", - "dist/tests/e2e/factories/DirectUrlFactoryWithSpecificBranchTest.spec.js" + "dist/tests/e2e/theia/factories/DirectUrlFactoryWithRootFolderTest.spec.js", + "dist/tests/e2e/theia/factories/DirectUrlFactoryWithSpecificBranchTest.spec.js" ] } diff --git a/tests/e2e/mocha-all-plugins-code.json b/tests/e2e/mocha-all-plugins-code.json new file mode 100644 index 00000000000..7fe88ce696e --- /dev/null +++ b/tests/e2e/mocha-all-plugins-code.json @@ -0,0 +1,10 @@ +{ + "timeout": "2200000", + "reporter": "dist/driver/CheReporter.js", + "ui": "tdd", + "full-trace": true, + "require": "source-map-support/register", + "spec": [ + "dist/tests/login/Login.spec.js" + ] +} diff --git a/tests/e2e/mocha-all-plugins.json b/tests/e2e/mocha-all-plugins-theia.json similarity index 65% rename from tests/e2e/mocha-all-plugins.json rename to tests/e2e/mocha-all-plugins-theia.json index 9db8aa07935..a6c9c08ddc4 100644 --- a/tests/e2e/mocha-all-plugins.json +++ b/tests/e2e/mocha-all-plugins-theia.json @@ -6,7 +6,7 @@ "require": "source-map-support/register", "spec": [ "dist/tests/login/Login.spec.js", - "dist/tests/plugins/VscodeXmlPlugin.spec.js", - "dist/tests/plugins/VscodeYamlPlugin.spec.js" + "dist/tests/plugins/theia/VscodeXmlPlugin.spec.js", + "dist/tests/plugins/theia/VscodeYamlPlugin.spec.js" ] } diff --git a/tests/e2e/mocha.json b/tests/e2e/mocha-code.json similarity index 62% rename from tests/e2e/mocha.json rename to tests/e2e/mocha-code.json index 2889f8d6a83..443cbaa6f06 100644 --- a/tests/e2e/mocha.json +++ b/tests/e2e/mocha-code.json @@ -4,5 +4,5 @@ "ui": "tdd", "bail": true, "full-trace": true, - "spec": ["dist/tests/login/Login.spec.js", "dist/tests/e2e/*.spec.js"] + "spec": ["dist/tests/login/Login.spec.js", "dist/tests/e2e/code/*.spec.js"] } diff --git a/tests/e2e/mocha-connector.json b/tests/e2e/mocha-connector-theia.json similarity index 74% rename from tests/e2e/mocha-connector.json rename to tests/e2e/mocha-connector-theia.json index ad437c9d61f..bd4ce2599d5 100644 --- a/tests/e2e/mocha-connector.json +++ b/tests/e2e/mocha-connector-theia.json @@ -5,5 +5,5 @@ "bail": true, "full-trace": true, "require": "source-map-support/register", - "spec": "dist/tests/e2e/OpenshiftConnector.spec.js" + "spec": "dist/tests/e2e/theia/OpenshiftConnector.spec.js" } diff --git a/tests/e2e/mocha-devworkspace-happy-path-code.json b/tests/e2e/mocha-devworkspace-happy-path-code.json new file mode 100644 index 00000000000..7fe88ce696e --- /dev/null +++ b/tests/e2e/mocha-devworkspace-happy-path-code.json @@ -0,0 +1,10 @@ +{ + "timeout": "2200000", + "reporter": "dist/driver/CheReporter.js", + "ui": "tdd", + "full-trace": true, + "require": "source-map-support/register", + "spec": [ + "dist/tests/login/Login.spec.js" + ] +} diff --git a/tests/e2e/mocha-devworkspace-happy-path.json b/tests/e2e/mocha-devworkspace-happy-path-theia.json similarity index 75% rename from tests/e2e/mocha-devworkspace-happy-path.json rename to tests/e2e/mocha-devworkspace-happy-path-theia.json index f13e347a6a9..6f63b49e373 100644 --- a/tests/e2e/mocha-devworkspace-happy-path.json +++ b/tests/e2e/mocha-devworkspace-happy-path-theia.json @@ -6,6 +6,6 @@ "require": "source-map-support/register", "spec": [ "dist/tests/login/Login.spec.js", - "dist/tests/e2e_happy_path/DevWorkspaceHappyPath.spec.js" + "dist/tests/e2e_happy_path/theia/DevWorkspaceHappyPath.spec.js" ] } diff --git a/tests/e2e/mocha-factory-code.json b/tests/e2e/mocha-factory-code.json new file mode 100644 index 00000000000..7fe88ce696e --- /dev/null +++ b/tests/e2e/mocha-factory-code.json @@ -0,0 +1,10 @@ +{ + "timeout": "2200000", + "reporter": "dist/driver/CheReporter.js", + "ui": "tdd", + "full-trace": true, + "require": "source-map-support/register", + "spec": [ + "dist/tests/login/Login.spec.js" + ] +} diff --git a/tests/e2e/mocha-factory.json b/tests/e2e/mocha-factory-theia.json similarity index 81% rename from tests/e2e/mocha-factory.json rename to tests/e2e/mocha-factory-theia.json index 895a078b0a5..8b9c107f89a 100644 --- a/tests/e2e/mocha-factory.json +++ b/tests/e2e/mocha-factory-theia.json @@ -6,6 +6,6 @@ "require": "source-map-support/register", "spec": [ "dist/tests/login/Login.spec.js", - "dist/tests/e2e/FactoryUrl.spec.js" + "dist/tests/e2e/theia/FactoryUrl.spec.js" ] } diff --git a/tests/e2e/mocha-git-publish-branch-theia.json b/tests/e2e/mocha-git-publish-branch-theia.json new file mode 100644 index 00000000000..e5fcccad761 --- /dev/null +++ b/tests/e2e/mocha-git-publish-branch-theia.json @@ -0,0 +1,11 @@ +{ + "timeout": "2200000", + "reporter": "dist/driver/CheReporter.js", + "ui": "tdd", + "bail": true, + "full-trace": true, + "require": "source-map-support/register", + "spec": [ + "dist/tests/e2e/theia/GitPublishBranch.spec.js" + ] +} diff --git a/tests/e2e/mocha-git-self-sign-cert-theia.json b/tests/e2e/mocha-git-self-sign-cert-theia.json new file mode 100644 index 00000000000..6ee70cf2153 --- /dev/null +++ b/tests/e2e/mocha-git-self-sign-cert-theia.json @@ -0,0 +1,11 @@ +{ + "timeout": "2200000", + "reporter": "dist/driver/CheReporter.js", + "ui": "tdd", + "bail": true, + "full-trace": true, + "require": "source-map-support/register", + "spec": [ + "dist/tests/e2e/theia/GitSelfSignCert.spec.js" + ] +} diff --git a/tests/e2e/mocha-git-self-sign-cert.json b/tests/e2e/mocha-git-ssh-theia.json similarity index 80% rename from tests/e2e/mocha-git-self-sign-cert.json rename to tests/e2e/mocha-git-ssh-theia.json index 9b707fbac75..b9b98a087ab 100644 --- a/tests/e2e/mocha-git-self-sign-cert.json +++ b/tests/e2e/mocha-git-ssh-theia.json @@ -6,6 +6,6 @@ "full-trace": true, "require": "source-map-support/register", "spec": [ - "dist/tests/e2e/GitSelfSignCert.spec.js" + "dist/tests/e2e/theia/GitSsh.spec.js" ] } diff --git a/tests/e2e/mocha-git-publish-branch.json b/tests/e2e/mocha-happy-path-code.json similarity index 80% rename from tests/e2e/mocha-git-publish-branch.json rename to tests/e2e/mocha-happy-path-code.json index a1b574fb825..be9febe44d2 100644 --- a/tests/e2e/mocha-git-publish-branch.json +++ b/tests/e2e/mocha-happy-path-code.json @@ -6,6 +6,6 @@ "full-trace": true, "require": "source-map-support/register", "spec": [ - "dist/tests/e2e/GitPublishBranch.spec.js" + "dist/tests/login/Login.spec.js" ] } diff --git a/tests/e2e/mocha-happy-path.json b/tests/e2e/mocha-happy-path-theia.json similarity index 80% rename from tests/e2e/mocha-happy-path.json rename to tests/e2e/mocha-happy-path-theia.json index 5d8e4f2271c..59d75c96372 100644 --- a/tests/e2e/mocha-happy-path.json +++ b/tests/e2e/mocha-happy-path-theia.json @@ -7,6 +7,6 @@ "require": "source-map-support/register", "spec": [ "dist/tests/login/Login.spec.js", - "dist/tests/e2e_happy_path/HappyPath.spec.js" + "dist/tests/e2e_happy_path/theia/HappyPath.spec.js" ] } diff --git a/tests/e2e/mocha-java-vertx.json b/tests/e2e/mocha-java-maven.json similarity index 91% rename from tests/e2e/mocha-java-vertx.json rename to tests/e2e/mocha-java-maven.json index 923d651d4af..46d906e100c 100644 --- a/tests/e2e/mocha-java-vertx.json +++ b/tests/e2e/mocha-java-maven.json @@ -5,5 +5,5 @@ "bail": true, "full-trace": true, "support": "source-map-support/register", - "spec": ["dist/tests/login/Login.spec.js", "dist/tests/devfiles/JavaVertx.spec.js"] + "spec": ["dist/tests/login/Login.spec.js", "dist/tests/devfiles/JavaMaven.spec.js"] } diff --git a/tests/e2e/mocha-load.json b/tests/e2e/mocha-java-springboot-code.json similarity index 77% rename from tests/e2e/mocha-load.json rename to tests/e2e/mocha-java-springboot-code.json index 6ce2d269fa5..75e63242160 100644 --- a/tests/e2e/mocha-load.json +++ b/tests/e2e/mocha-java-springboot-code.json @@ -5,5 +5,5 @@ "bail": true, "full-trace": true, "support": "source-map-support/register", - "spec": ["dist/tests/load_test/LoadTest.spec.js"] + "spec": ["dist/tests/login/Login.spec.js"] } diff --git a/tests/e2e/mocha-java-springboot-theia.json b/tests/e2e/mocha-java-springboot-theia.json new file mode 100644 index 00000000000..b65dfb18efe --- /dev/null +++ b/tests/e2e/mocha-java-springboot-theia.json @@ -0,0 +1,9 @@ +{ + "timeout": "1200000", + "reporter": "dist/driver/CheReporter.js", + "ui": "tdd", + "bail": true, + "full-trace": true, + "support": "source-map-support/register", + "spec": ["dist/tests/login/Login.spec.js", "dist/tests/devfiles/theia/JavaSpringBoot.spec.js"] +} diff --git a/tests/e2e/mocha-wkspc-creation-and-ls.json b/tests/e2e/mocha-java-vertx-code.json similarity index 70% rename from tests/e2e/mocha-wkspc-creation-and-ls.json rename to tests/e2e/mocha-java-vertx-code.json index 2a0861f0be6..75e63242160 100644 --- a/tests/e2e/mocha-wkspc-creation-and-ls.json +++ b/tests/e2e/mocha-java-vertx-code.json @@ -5,5 +5,5 @@ "bail": true, "full-trace": true, "support": "source-map-support/register", - "spec": ["dist/tests/e2e/WorkspaceCreationAndLsInitialization.spec.js"] + "spec": ["dist/tests/login/Login.spec.js"] } diff --git a/tests/e2e/mocha-java-vertx-theia.json b/tests/e2e/mocha-java-vertx-theia.json new file mode 100644 index 00000000000..ad72d89bccc --- /dev/null +++ b/tests/e2e/mocha-java-vertx-theia.json @@ -0,0 +1,9 @@ +{ + "timeout": "1200000", + "reporter": "dist/driver/CheReporter.js", + "ui": "tdd", + "bail": true, + "full-trace": true, + "support": "source-map-support/register", + "spec": ["dist/tests/login/Login.spec.js", "dist/tests/devfiles/theia/JavaVertx.spec.js"] +} diff --git a/tests/e2e/mocha-load-theia.json b/tests/e2e/mocha-load-theia.json new file mode 100644 index 00000000000..13d4effbf30 --- /dev/null +++ b/tests/e2e/mocha-load-theia.json @@ -0,0 +1,9 @@ +{ + "timeout": "1200000", + "reporter": "dist/driver/CheReporter.js", + "ui": "tdd", + "bail": true, + "full-trace": true, + "support": "source-map-support/register", + "spec": ["dist/tests/load_test/theia/LoadTest.spec.js"] +} diff --git a/tests/e2e/mocha-java-springboot.json b/tests/e2e/mocha-scala.json similarity index 89% rename from tests/e2e/mocha-java-springboot.json rename to tests/e2e/mocha-scala.json index 758768d57ae..f2974b5a0cf 100644 --- a/tests/e2e/mocha-java-springboot.json +++ b/tests/e2e/mocha-scala.json @@ -5,5 +5,5 @@ "bail": true, "full-trace": true, "support": "source-map-support/register", - "spec": ["dist/tests/login/Login.spec.js", "dist/tests/devfiles/JavaSpringBoot.spec.js"] + "spec": ["dist/tests/login/Login.spec.js", "dist/tests/devfiles/Scala.spec.js"] } diff --git a/tests/e2e/mocha-theia.json b/tests/e2e/mocha-theia.json new file mode 100644 index 00000000000..913479aa675 --- /dev/null +++ b/tests/e2e/mocha-theia.json @@ -0,0 +1,8 @@ +{ + "timeout": "1200000", + "reporter": "dist/driver/CheReporter.js", + "ui": "tdd", + "bail": true, + "full-trace": true, + "spec": ["dist/tests/login/Login.spec.js", "dist/tests/e2e/theia/*.spec.js"] +} diff --git a/tests/e2e/mocha-wkspc-creation-and-ls-theia.json b/tests/e2e/mocha-wkspc-creation-and-ls-theia.json new file mode 100644 index 00000000000..aa6cf06fa7e --- /dev/null +++ b/tests/e2e/mocha-wkspc-creation-and-ls-theia.json @@ -0,0 +1,9 @@ +{ + "timeout": "1200000", + "reporter": "dist/driver/CheReporter.js", + "ui": "tdd", + "bail": true, + "full-trace": true, + "support": "source-map-support/register", + "spec": ["dist/tests/e2e/theia/WorkspaceCreationAndLsInitialization.spec.js"] +} diff --git a/tests/e2e/package.json b/tests/e2e/package.json index c5e3cb0ec53..f46f370f96f 100644 --- a/tests/e2e/package.json +++ b/tests/e2e/package.json @@ -4,31 +4,40 @@ "description": "", "main": "dist/index.js", "scripts": { + "lint": "tslint --fix -p .", + "tsc": "tsc -p .", "cleanup-docker": "if [ $(docker ps -a | grep -c selenium-e2e) -gt 0 ]; then docker rm -f $(docker ps --filter \"name=selenium-e2e\" -aq); fi;", + "init-mocha-opts": "tsc && mocha --config mocha-single-devfile.json --spec dist/tests/login/Login.spec.js", "test-docker": "npm run cleanup-docker && docker run -it --shm-size=2g -p 5920:5920 --name selenium-e2e -e TS_SELENIUM_BASE_URL=$TS_SELENIUM_BASE_URL eclipse/che-e2e:nightly", "test-docker-mount-e2e": "npm run cleanup-docker && docker run -it --shm-size=2g -p 5920:5920 --name selenium-e2e -e TS_SELENIUM_BASE_URL=$TS_SELENIUM_BASE_URL -v $(pwd):/tmp/e2e:Z eclipse/che-e2e:nightly", - "test": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha.json", - "load-test": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-load.json", - "test-happy-path": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-happy-path.json", - "test-devworkspace-happy-path": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-devworkspace-happy-path.json", - "test-wkspc-creation-and-ls": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-wkspc-creation-and-ls", - "test-java-vertx": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-java-vertx.json", - "test-java-springboot": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-java-springboot.json", - "test-git-ssh": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-git-ssh.json", - "test-git-self-sign-cert": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-git-self-sign-cert.json", - "test-git-publish-branch": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-git-publish-branch.json", - "test-openshift-connector": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-connector.json", - "test-all-devfiles": "./generateIndex.sh && ./initDevfileTests.sh", - "test-factory": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-factory.json", - "test-all-factories": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-all-factories.json", - "test-intelij": "tsc && mocha --config mocha.intelij.json", "test-oauth": "tsc && mocha --config mocha.ocp.link.json", - "lint": "tslint --fix -p .", - "tsc": "tsc -p .", - "init-mocha-opts": "tsc && mocha --config mocha-single-devfile.json --spec dist/tests/login/Login.spec.js", + "test-intelij": "tsc && mocha --config mocha.intelij.json", "test-plugin": "./initPluginTest.sh", - "test-plugin-ci": "export TS_DELETE_PLUGINS_TEST_WORKSPACE=true && npm run init-mocha-opts -- --spec dist/tests/plugins/${USERSTORY}.spec.js", - "test-all-plugins": "tsc && mocha --config mocha-all-plugins.json" + "test-all-devfiles": "./generateIndex.sh && ./initDevfileTests.sh", + "test-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-theia.json", + "load-test-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-load-theia.json", + "test-happy-path-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-happy-path-theia.json", + "test-devworkspace-happy-path-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-devworkspace-happy-path-theia.json", + "test-wkspc-creation-and-ls-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-wkspc-creation-and-ls-theia.json", + "test-java-vertx-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-java-vertx-theia.json", + "test-java-springboot-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-java-springboot-theia.json", + "test-git-ssh-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-git-ssh-theia.json", + "test-git-self-sign-cert-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-git-self-sign-cert-theia.json", + "test-git-publish-branch-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-git-publish-branch-theia.json", + "test-openshift-connector-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-connector-theia.json", + "test-factory-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-factory-theia.json", + "test-all-factories-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-all-factories-theia.json", + "test-plugin-ci-theia": "export TS_DELETE_PLUGINS_TEST_WORKSPACE=true && npm run init-mocha-opts -- --spec dist/tests/plugins/theia/${USERSTORY}.spec.js", + "test-all-plugins-theia": "tsc && mocha --config mocha-all-plugins-theia.json", + "test-code": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-code.json", + "test-happy-path-code": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-happy-path-code.json", + "test-devworkspace-happy-path-code": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-devworkspace-happy-path-code.json", + "test-java-vertx-code": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-java-vertx-code.json", + "test-java-springboot-code": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-java-springboot-code.json", + "test-factory-code": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-factory-code.json", + "test-all-factories-code": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-all-factories-code.json", + "test-plugin-ci-code": "export TS_DELETE_PLUGINS_TEST_WORKSPACE=true && npm run init-mocha-opts -- --spec dist/tests/plugins/code/${USERSTORY}.spec.js", + "test-all-plugins-code": "tsc && mocha --config mocha-all-plugins-code.json" }, "author": "Ihor Okhrimenko (iokhrime@redhat.com)", "license": "ISC", diff --git a/tests/e2e/pageobjects/dashboard/workspace-details/WorkspaceDetails.ts b/tests/e2e/pageobjects/dashboard/workspace-details/WorkspaceDetails.ts index 525a02aa821..340bf8831c8 100644 --- a/tests/e2e/pageobjects/dashboard/workspace-details/WorkspaceDetails.ts +++ b/tests/e2e/pageobjects/dashboard/workspace-details/WorkspaceDetails.ts @@ -13,7 +13,7 @@ import { CLASSES, TYPES } from '../../../inversify.types'; import 'reflect-metadata'; import { TestConstants } from '../../../TestConstants'; import { By } from 'selenium-webdriver'; -import { Ide } from '../../ide/Ide'; +import { Ide } from '../../ide/theia/Ide'; import { WorkspaceStatus } from '../../../utils/workspace/WorkspaceStatus'; import { Logger } from '../../../utils/Logger'; import { TimeoutConstants } from '../../../TimeoutConstants'; diff --git a/tests/e2e/pageobjects/ide/ContextMenu.ts b/tests/e2e/pageobjects/ide/theia/ContextMenu.ts similarity index 90% rename from tests/e2e/pageobjects/ide/ContextMenu.ts rename to tests/e2e/pageobjects/ide/theia/ContextMenu.ts index 747e222a7cd..87bdfafb6a7 100644 --- a/tests/e2e/pageobjects/ide/ContextMenu.ts +++ b/tests/e2e/pageobjects/ide/theia/ContextMenu.ts @@ -10,11 +10,11 @@ import 'reflect-metadata'; import { injectable, inject } from 'inversify'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { CLASSES } from '../../inversify.types'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; import { By, Key } from 'selenium-webdriver'; -import { Logger } from '../../utils/Logger'; -import { TimeoutConstants } from '../../TimeoutConstants'; +import { Logger } from '../../../utils/Logger'; +import { TimeoutConstants } from '../../../TimeoutConstants'; @injectable() export class ContextMenu { diff --git a/tests/e2e/pageobjects/ide/DebugView.ts b/tests/e2e/pageobjects/ide/theia/DebugView.ts similarity index 90% rename from tests/e2e/pageobjects/ide/DebugView.ts rename to tests/e2e/pageobjects/ide/theia/DebugView.ts index 45805864ad5..7121139cd92 100644 --- a/tests/e2e/pageobjects/ide/DebugView.ts +++ b/tests/e2e/pageobjects/ide/theia/DebugView.ts @@ -9,14 +9,14 @@ **********************************************************************/ import { inject, injectable } from 'inversify'; -import { CLASSES } from '../../inversify.types'; -import { TestConstants } from '../../TestConstants'; -import { DriverHelper } from '../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; +import { TestConstants } from '../../../TestConstants'; +import { DriverHelper } from '../../../utils/DriverHelper'; import { By, Key, WebElement, error } from 'selenium-webdriver'; import { Ide } from './Ide'; -import { Logger } from '../../utils/Logger'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { AnimationChecker } from '../../utils/AnimationChecker'; +import { Logger } from '../../../utils/Logger'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { AnimationChecker } from '../../../utils/AnimationChecker'; @injectable() export class DebugView { diff --git a/tests/e2e/pageobjects/ide/DialogWindow.ts b/tests/e2e/pageobjects/ide/theia/DialogWindow.ts similarity index 94% rename from tests/e2e/pageobjects/ide/DialogWindow.ts rename to tests/e2e/pageobjects/ide/theia/DialogWindow.ts index 6a0b4f0f242..2f25b215ca5 100644 --- a/tests/e2e/pageobjects/ide/DialogWindow.ts +++ b/tests/e2e/pageobjects/ide/theia/DialogWindow.ts @@ -9,12 +9,12 @@ **********************************************************************/ import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../inversify.types'; -import { DriverHelper } from '../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; +import { DriverHelper } from '../../../utils/DriverHelper'; import { By } from 'selenium-webdriver'; -import { Logger } from '../../utils/Logger'; +import { Logger } from '../../../utils/Logger'; import { Ide } from './Ide'; -import { TimeoutConstants } from '../../TimeoutConstants'; +import { TimeoutConstants } from '../../../TimeoutConstants'; @injectable() export class DialogWindow { diff --git a/tests/e2e/pageobjects/ide/Editor.ts b/tests/e2e/pageobjects/ide/theia/Editor.ts similarity index 98% rename from tests/e2e/pageobjects/ide/Editor.ts rename to tests/e2e/pageobjects/ide/theia/Editor.ts index 0eb3f04bc6d..fd366a46c89 100644 --- a/tests/e2e/pageobjects/ide/Editor.ts +++ b/tests/e2e/pageobjects/ide/theia/Editor.ts @@ -10,12 +10,12 @@ import 'reflect-metadata'; import { injectable, inject } from 'inversify'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { CLASSES } from '../../inversify.types'; -import { TestConstants } from '../../TestConstants'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; +import { TestConstants } from '../../../TestConstants'; import { By, Key, error } from 'selenium-webdriver'; -import { Logger } from '../../utils/Logger'; -import { TimeoutConstants } from '../../TimeoutConstants'; +import { Logger } from '../../../utils/Logger'; +import { TimeoutConstants } from '../../../TimeoutConstants'; @injectable() export class Editor { diff --git a/tests/e2e/pageobjects/ide/Ide.ts b/tests/e2e/pageobjects/ide/theia/Ide.ts similarity index 98% rename from tests/e2e/pageobjects/ide/Ide.ts rename to tests/e2e/pageobjects/ide/theia/Ide.ts index 8c906d2ea96..503e1ae1587 100644 --- a/tests/e2e/pageobjects/ide/Ide.ts +++ b/tests/e2e/pageobjects/ide/theia/Ide.ts @@ -9,14 +9,14 @@ **********************************************************************/ import axios from 'axios'; -import { DriverHelper } from '../../utils/DriverHelper'; +import { DriverHelper } from '../../../utils/DriverHelper'; import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../inversify.types'; -import { TestConstants } from '../../TestConstants'; +import { CLASSES } from '../../../inversify.types'; +import { TestConstants } from '../../../TestConstants'; import { By, error } from 'selenium-webdriver'; -import { Logger } from '../../utils/Logger'; +import { Logger } from '../../../utils/Logger'; import { NotificationCenter } from './NotificationCenter'; -import { TimeoutConstants } from '../../TimeoutConstants'; +import { TimeoutConstants } from '../../../TimeoutConstants'; export enum LeftToolbarButton { Explorer = 'Explorer', diff --git a/tests/e2e/pageobjects/ide/LeftToolBar.ts b/tests/e2e/pageobjects/ide/theia/LeftToolBar.ts similarity index 93% rename from tests/e2e/pageobjects/ide/LeftToolBar.ts rename to tests/e2e/pageobjects/ide/theia/LeftToolBar.ts index 791b5647fae..f14b3765970 100644 --- a/tests/e2e/pageobjects/ide/LeftToolBar.ts +++ b/tests/e2e/pageobjects/ide/theia/LeftToolBar.ts @@ -9,11 +9,11 @@ **********************************************************************/ import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../inversify.types'; -import { DriverHelper } from '../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; +import { DriverHelper } from '../../../utils/DriverHelper'; import { By } from 'selenium-webdriver'; -import { Logger } from '../../utils/Logger'; -import { TimeoutConstants } from '../../TimeoutConstants'; +import { Logger } from '../../../utils/Logger'; +import { TimeoutConstants } from '../../../TimeoutConstants'; @injectable() export class LeftToolBar { diff --git a/tests/e2e/pageobjects/ide/NavigationBar.ts b/tests/e2e/pageobjects/ide/theia/NavigationBar.ts similarity index 81% rename from tests/e2e/pageobjects/ide/NavigationBar.ts rename to tests/e2e/pageobjects/ide/theia/NavigationBar.ts index 7df70601c14..5b94bec6d49 100644 --- a/tests/e2e/pageobjects/ide/NavigationBar.ts +++ b/tests/e2e/pageobjects/ide/theia/NavigationBar.ts @@ -7,14 +7,14 @@ * * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ - import { injectable, inject } from 'inversify'; - import { DriverHelper } from '../../utils/DriverHelper'; - import { CLASSES } from '../../inversify.types'; - import { Logger } from '../../utils/Logger'; - import { By } from 'selenium-webdriver'; +import { injectable, inject } from 'inversify'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; +import { Logger } from '../../../utils/Logger'; +import { By } from 'selenium-webdriver'; - @injectable() - export class NavigationBar { +@injectable() +export class NavigationBar { constructor(@inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper) { } async clickOnShowNavigationBar() { diff --git a/tests/e2e/pageobjects/ide/NotificationCenter.ts b/tests/e2e/pageobjects/ide/theia/NotificationCenter.ts similarity index 93% rename from tests/e2e/pageobjects/ide/NotificationCenter.ts rename to tests/e2e/pageobjects/ide/theia/NotificationCenter.ts index 460f1d3b5b0..298f78c6351 100644 --- a/tests/e2e/pageobjects/ide/NotificationCenter.ts +++ b/tests/e2e/pageobjects/ide/theia/NotificationCenter.ts @@ -9,11 +9,11 @@ **********************************************************************/ import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../inversify.types'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { Logger } from '../../utils/Logger'; +import { CLASSES } from '../../../inversify.types'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { Logger } from '../../../utils/Logger'; import { By } from 'selenium-webdriver'; -import { TimeoutConstants } from '../../TimeoutConstants'; +import { TimeoutConstants } from '../../../TimeoutConstants'; @injectable() export class NotificationCenter { diff --git a/tests/e2e/pageobjects/ide/OpenDialogWidget.ts b/tests/e2e/pageobjects/ide/theia/OpenDialogWidget.ts similarity index 90% rename from tests/e2e/pageobjects/ide/OpenDialogWidget.ts rename to tests/e2e/pageobjects/ide/theia/OpenDialogWidget.ts index 4ccdc0b2e8a..59a8a92640a 100644 --- a/tests/e2e/pageobjects/ide/OpenDialogWidget.ts +++ b/tests/e2e/pageobjects/ide/theia/OpenDialogWidget.ts @@ -9,13 +9,13 @@ **********************************************************************/ import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../inversify.types'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { Logger } from '../../utils/Logger'; -import { DialogWindow } from '../ide/DialogWindow'; -import { OpenWorkspaceWidget } from '../ide/OpenWorkspaceWidget'; +import { CLASSES } from '../../../inversify.types'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { Logger } from '../../../utils/Logger'; +import { DialogWindow } from '../../ide/theia/DialogWindow'; +import { OpenWorkspaceWidget } from '../../ide/theia/OpenWorkspaceWidget'; import { By } from 'selenium-webdriver'; -import { TimeoutConstants } from '../../TimeoutConstants'; +import { TimeoutConstants } from '../../../TimeoutConstants'; export enum Locations { Theia = 'theia', diff --git a/tests/e2e/pageobjects/ide/OpenEditors.ts b/tests/e2e/pageobjects/ide/theia/OpenEditors.ts similarity index 93% rename from tests/e2e/pageobjects/ide/OpenEditors.ts rename to tests/e2e/pageobjects/ide/theia/OpenEditors.ts index 6fefcdb442a..5d72d398c50 100644 --- a/tests/e2e/pageobjects/ide/OpenEditors.ts +++ b/tests/e2e/pageobjects/ide/theia/OpenEditors.ts @@ -10,11 +10,11 @@ import 'reflect-metadata'; import { injectable, inject } from 'inversify'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { CLASSES } from '../../inversify.types'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; import { By } from 'selenium-webdriver'; -import { Logger } from '../../utils/Logger'; -import { TimeoutConstants } from '../../TimeoutConstants'; +import { Logger } from '../../../utils/Logger'; +import { TimeoutConstants } from '../../../TimeoutConstants'; @injectable() export class OpenEditors { diff --git a/tests/e2e/pageobjects/ide/OpenWorkspaceWidget.ts b/tests/e2e/pageobjects/ide/theia/OpenWorkspaceWidget.ts similarity index 89% rename from tests/e2e/pageobjects/ide/OpenWorkspaceWidget.ts rename to tests/e2e/pageobjects/ide/theia/OpenWorkspaceWidget.ts index 77864c06de5..4129f6a045f 100644 --- a/tests/e2e/pageobjects/ide/OpenWorkspaceWidget.ts +++ b/tests/e2e/pageobjects/ide/theia/OpenWorkspaceWidget.ts @@ -9,11 +9,11 @@ **********************************************************************/ import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../inversify.types'; -import { DriverHelper } from '../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; +import { DriverHelper } from '../../../utils/DriverHelper'; import { By } from 'selenium-webdriver'; -import { Logger } from '../../utils/Logger'; -import { TimeoutConstants } from '../../TimeoutConstants'; +import { Logger } from '../../../utils/Logger'; +import { TimeoutConstants } from '../../../TimeoutConstants'; @injectable() export class OpenWorkspaceWidget { diff --git a/tests/e2e/pageobjects/ide/PreviewWidget.ts b/tests/e2e/pageobjects/ide/theia/PreviewWidget.ts similarity index 94% rename from tests/e2e/pageobjects/ide/PreviewWidget.ts rename to tests/e2e/pageobjects/ide/theia/PreviewWidget.ts index 08a3aecdb3c..1c144af4f85 100644 --- a/tests/e2e/pageobjects/ide/PreviewWidget.ts +++ b/tests/e2e/pageobjects/ide/theia/PreviewWidget.ts @@ -9,13 +9,13 @@ **********************************************************************/ import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../inversify.types'; -import { DriverHelper } from '../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; +import { DriverHelper } from '../../../utils/DriverHelper'; import { By, error, Key } from 'selenium-webdriver'; -import { TestConstants } from '../../TestConstants'; +import { TestConstants } from '../../../TestConstants'; import { Ide } from './Ide'; -import { Logger } from '../../utils/Logger'; -import { TimeoutConstants } from '../../TimeoutConstants'; +import { Logger } from '../../../utils/Logger'; +import { TimeoutConstants } from '../../../TimeoutConstants'; /** * @deprecated Preview widget is no longer a valid page fragment. diff --git a/tests/e2e/pageobjects/ide/ProjectTree.ts b/tests/e2e/pageobjects/ide/theia/ProjectTree.ts similarity index 97% rename from tests/e2e/pageobjects/ide/ProjectTree.ts rename to tests/e2e/pageobjects/ide/theia/ProjectTree.ts index a7bd04f940d..43b5600cf00 100644 --- a/tests/e2e/pageobjects/ide/ProjectTree.ts +++ b/tests/e2e/pageobjects/ide/theia/ProjectTree.ts @@ -10,15 +10,15 @@ import 'reflect-metadata'; import { injectable, inject } from 'inversify'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { CLASSES } from '../../inversify.types'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; import { Ide, LeftToolbarButton } from './Ide'; -import { TestConstants } from '../../TestConstants'; +import { TestConstants } from '../../../TestConstants'; import { By, error } from 'selenium-webdriver'; import { Editor } from './Editor'; -import { Logger } from '../../utils/Logger'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; +import { Logger } from '../../../utils/Logger'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; @injectable() export class ProjectTree { diff --git a/tests/e2e/pageobjects/ide/QuickOpenContainer.ts b/tests/e2e/pageobjects/ide/theia/QuickOpenContainer.ts similarity index 91% rename from tests/e2e/pageobjects/ide/QuickOpenContainer.ts rename to tests/e2e/pageobjects/ide/theia/QuickOpenContainer.ts index 34d9d92da9b..956d3e53d99 100644 --- a/tests/e2e/pageobjects/ide/QuickOpenContainer.ts +++ b/tests/e2e/pageobjects/ide/theia/QuickOpenContainer.ts @@ -9,11 +9,11 @@ **********************************************************************/ import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../inversify.types'; -import { DriverHelper } from '../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; +import { DriverHelper } from '../../../utils/DriverHelper'; import { By } from 'selenium-webdriver'; -import { Logger } from '../../utils/Logger'; -import { TimeoutConstants } from '../../TimeoutConstants'; +import { Logger } from '../../../utils/Logger'; +import { TimeoutConstants } from '../../../TimeoutConstants'; @injectable() export class QuickOpenContainer { diff --git a/tests/e2e/pageobjects/ide/RightToolBar.ts b/tests/e2e/pageobjects/ide/theia/RightToolBar.ts similarity index 84% rename from tests/e2e/pageobjects/ide/RightToolBar.ts rename to tests/e2e/pageobjects/ide/theia/RightToolBar.ts index ae1f0e835c6..e54c2c5060a 100644 --- a/tests/e2e/pageobjects/ide/RightToolBar.ts +++ b/tests/e2e/pageobjects/ide/theia/RightToolBar.ts @@ -8,11 +8,11 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../inversify.types'; -import { DriverHelper } from '../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; +import { DriverHelper } from '../../../utils/DriverHelper'; import { By } from 'selenium-webdriver'; -import { Logger } from '../../utils/Logger'; -import { TimeoutConstants } from '../../TimeoutConstants'; +import { Logger } from '../../../utils/Logger'; +import { TimeoutConstants } from '../../../TimeoutConstants'; @injectable() export class RightToolBar { diff --git a/tests/e2e/pageobjects/ide/Terminal.ts b/tests/e2e/pageobjects/ide/theia/Terminal.ts similarity index 97% rename from tests/e2e/pageobjects/ide/Terminal.ts rename to tests/e2e/pageobjects/ide/theia/Terminal.ts index aa5414fb38a..34f99b27575 100644 --- a/tests/e2e/pageobjects/ide/Terminal.ts +++ b/tests/e2e/pageobjects/ide/theia/Terminal.ts @@ -9,12 +9,12 @@ **********************************************************************/ import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../inversify.types'; -import { DriverHelper } from '../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; +import { DriverHelper } from '../../../utils/DriverHelper'; import { By, Key, WebElement, error } from 'selenium-webdriver'; -import { Logger } from '../../utils/Logger'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { TestConstants } from '../../TestConstants'; +import { Logger } from '../../../utils/Logger'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TestConstants } from '../../../TestConstants'; @injectable() export class Terminal { diff --git a/tests/e2e/pageobjects/ide/TopMenu.ts b/tests/e2e/pageobjects/ide/theia/TopMenu.ts similarity index 93% rename from tests/e2e/pageobjects/ide/TopMenu.ts rename to tests/e2e/pageobjects/ide/theia/TopMenu.ts index 561416cd4fa..541d6baf4fa 100644 --- a/tests/e2e/pageobjects/ide/TopMenu.ts +++ b/tests/e2e/pageobjects/ide/theia/TopMenu.ts @@ -1,11 +1,11 @@ import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../inversify.types'; -import { DriverHelper } from '../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; +import { DriverHelper } from '../../../utils/DriverHelper'; import { By, error } from 'selenium-webdriver'; -import { Logger } from '../../utils/Logger'; +import { Logger } from '../../../utils/Logger'; import { QuickOpenContainer } from './QuickOpenContainer'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { AnimationChecker } from '../../utils/AnimationChecker'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { AnimationChecker } from '../../../utils/AnimationChecker'; /********************************************************************* * Copyright (c) 2019 Red Hat, Inc. diff --git a/tests/e2e/pageobjects/ide/plugins/GitHubPullRequestPlugin.ts b/tests/e2e/pageobjects/ide/theia/plugins/GitHubPullRequestPlugin.ts similarity index 94% rename from tests/e2e/pageobjects/ide/plugins/GitHubPullRequestPlugin.ts rename to tests/e2e/pageobjects/ide/theia/plugins/GitHubPullRequestPlugin.ts index a29133fc082..5a8e9f5e774 100644 --- a/tests/e2e/pageobjects/ide/plugins/GitHubPullRequestPlugin.ts +++ b/tests/e2e/pageobjects/ide/theia/plugins/GitHubPullRequestPlugin.ts @@ -10,13 +10,13 @@ import 'reflect-metadata'; import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../../inversify.types'; -import { DriverHelper } from '../../../utils/DriverHelper'; -import { Logger } from '../../../utils/Logger'; +import { CLASSES } from '../../../../inversify.types'; +import { DriverHelper } from '../../../../utils/DriverHelper'; +import { Logger } from '../../../../utils/Logger'; import { By, error } from 'selenium-webdriver'; -import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TimeoutConstants } from '../../../../TimeoutConstants'; import { LeftToolBar } from '../LeftToolBar'; -import { TestConstants } from '../../../TestConstants'; +import { TestConstants } from '../../../../TestConstants'; import { TopMenu } from '../TopMenu'; import { QuickOpenContainer } from '../QuickOpenContainer'; diff --git a/tests/e2e/pageobjects/ide/plugins/GitPlugin.ts b/tests/e2e/pageobjects/ide/theia/plugins/GitPlugin.ts similarity index 96% rename from tests/e2e/pageobjects/ide/plugins/GitPlugin.ts rename to tests/e2e/pageobjects/ide/theia/plugins/GitPlugin.ts index 2da32c60fcf..0a14c41471a 100644 --- a/tests/e2e/pageobjects/ide/plugins/GitPlugin.ts +++ b/tests/e2e/pageobjects/ide/theia/plugins/GitPlugin.ts @@ -9,11 +9,11 @@ **********************************************************************/ import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../../inversify.types'; -import { DriverHelper } from '../../../utils/DriverHelper'; +import { CLASSES } from '../../../../inversify.types'; +import { DriverHelper } from '../../../../utils/DriverHelper'; import { By } from 'selenium-webdriver'; -import { Logger } from '../../../utils/Logger'; -import { TimeoutConstants } from '../../../TimeoutConstants'; +import { Logger } from '../../../../utils/Logger'; +import { TimeoutConstants } from '../../../../TimeoutConstants'; import { DialogWindow } from '../DialogWindow'; import { TopMenu } from '../TopMenu'; import { QuickOpenContainer } from '../QuickOpenContainer'; diff --git a/tests/e2e/pageobjects/ide/plugins/KubernetesPlugin.ts b/tests/e2e/pageobjects/ide/theia/plugins/KubernetesPlugin.ts similarity index 95% rename from tests/e2e/pageobjects/ide/plugins/KubernetesPlugin.ts rename to tests/e2e/pageobjects/ide/theia/plugins/KubernetesPlugin.ts index 3effb57f231..13df035122f 100644 --- a/tests/e2e/pageobjects/ide/plugins/KubernetesPlugin.ts +++ b/tests/e2e/pageobjects/ide/theia/plugins/KubernetesPlugin.ts @@ -10,11 +10,11 @@ import 'reflect-metadata'; import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../../inversify.types'; -import { DriverHelper } from '../../../utils/DriverHelper'; -import { Logger } from '../../../utils/Logger'; +import { CLASSES } from '../../../../inversify.types'; +import { DriverHelper } from '../../../../utils/DriverHelper'; +import { Logger } from '../../../../utils/Logger'; import { By } from 'selenium-webdriver'; -import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TimeoutConstants } from '../../../../TimeoutConstants'; import { LeftToolBar } from '../LeftToolBar'; @injectable() diff --git a/tests/e2e/pageobjects/ide/plugins/OpenshiftPlugin.ts b/tests/e2e/pageobjects/ide/theia/plugins/OpenshiftPlugin.ts similarity index 94% rename from tests/e2e/pageobjects/ide/plugins/OpenshiftPlugin.ts rename to tests/e2e/pageobjects/ide/theia/plugins/OpenshiftPlugin.ts index a76edd35099..161aeb039e7 100644 --- a/tests/e2e/pageobjects/ide/plugins/OpenshiftPlugin.ts +++ b/tests/e2e/pageobjects/ide/theia/plugins/OpenshiftPlugin.ts @@ -9,13 +9,13 @@ **********************************************************************/ import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../../inversify.types'; -import { DriverHelper } from '../../../utils/DriverHelper'; +import { CLASSES } from '../../../../inversify.types'; +import { DriverHelper } from '../../../../utils/DriverHelper'; import { Ide, LeftToolbarButton } from '../Ide'; -import { Logger } from '../../../utils/Logger'; +import { Logger } from '../../../../utils/Logger'; import { By } from 'selenium-webdriver'; import { ContextMenu } from '../ContextMenu'; -import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TimeoutConstants } from '../../../../TimeoutConstants'; export enum OpenshiftAppExplorerToolbar { ReportExtensionIssueOnGitHub = 'Report Extension Issue on GitHub', diff --git a/tests/e2e/pageobjects/ide/plugins/PluginsView.ts b/tests/e2e/pageobjects/ide/theia/plugins/PluginsView.ts similarity index 97% rename from tests/e2e/pageobjects/ide/plugins/PluginsView.ts rename to tests/e2e/pageobjects/ide/theia/plugins/PluginsView.ts index 87d0fb60544..40608ec996c 100644 --- a/tests/e2e/pageobjects/ide/plugins/PluginsView.ts +++ b/tests/e2e/pageobjects/ide/theia/plugins/PluginsView.ts @@ -10,11 +10,11 @@ import 'reflect-metadata'; import { injectable, inject } from 'inversify'; -import { CLASSES } from '../../../inversify.types'; -import { DriverHelper } from '../../../utils/DriverHelper'; -import { Logger } from '../../../utils/Logger'; +import { CLASSES } from '../../../../inversify.types'; +import { DriverHelper } from '../../../../utils/DriverHelper'; +import { Logger } from '../../../../utils/Logger'; import { By, error } from 'selenium-webdriver'; -import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TimeoutConstants } from '../../../../TimeoutConstants'; import { LeftToolBar } from '../LeftToolBar'; import { TopMenu } from '../TopMenu'; diff --git a/tests/e2e/tests/devfiles/CSlashCPlusPlus.spec.ts b/tests/e2e/tests/devfiles/theia/CSlashCPlusPlus.spec.ts similarity index 71% rename from tests/e2e/tests/devfiles/CSlashCPlusPlus.spec.ts rename to tests/e2e/tests/devfiles/theia/CSlashCPlusPlus.spec.ts index abacb6c646a..82fcb995e7b 100644 --- a/tests/e2e/tests/devfiles/CSlashCPlusPlus.spec.ts +++ b/tests/e2e/tests/devfiles/theia/CSlashCPlusPlus.spec.ts @@ -8,19 +8,19 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES } from '../../inversify.types'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { LanguageServerTests } from '../../testsLibrary/LanguageServerTests'; -import { CodeExecutionTests } from '../../testsLibrary/CodeExecutionTests'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageServerTestsTheia'; +import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import CheReporter from '../../../driver/CheReporter'; -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); -const commonLanguageServerTests: LanguageServerTests = e2eContainer.get(CLASSES.LanguageServerTests); -const codeExecutionTests: CodeExecutionTests = e2eContainer.get(CLASSES.CodeExecutionTests); +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); +const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); +const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); const editor: Editor = e2eContainer.get(CLASSES.Editor); const workspaceSampleName: string = 'cpp-hello-world'; @@ -35,7 +35,7 @@ suite(`${stack} test`, async () => { workspaceHandlingTests.createAndOpenWorkspace(stack); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { - CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + CheReporter.registerRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); projectAndFileTests.waitWorkspaceReadinessNoSubfolder(workspaceSampleName, false); }); @@ -60,7 +60,7 @@ suite(`${stack} test`, async () => { suite('Stopping and deleting the workspace', async () => { test(`Stop and remowe workspace`, async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); }); diff --git a/tests/e2e/tests/devfiles/DevfileSmoke.spec.ts b/tests/e2e/tests/devfiles/theia/DevfileSmoke.spec.ts similarity index 62% rename from tests/e2e/tests/devfiles/DevfileSmoke.spec.ts rename to tests/e2e/tests/devfiles/theia/DevfileSmoke.spec.ts index e9d83b213b6..153acac7ec1 100644 --- a/tests/e2e/tests/devfiles/DevfileSmoke.spec.ts +++ b/tests/e2e/tests/devfiles/theia/DevfileSmoke.spec.ts @@ -8,18 +8,18 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { CLASSES } from '../../inversify.types'; -import { e2eContainer } from '../../inversify.config'; -import { PreferencesHandler } from '../../utils/PreferencesHandler'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import { NavigationBar } from '../../pageobjects/ide/NavigationBar'; -import { Dashboard } from '../../pageobjects/dashboard/Dashboard'; -import CheReporter from '../../driver/CheReporter'; +import { CLASSES } from '../../../inversify.types'; +import { e2eContainer } from '../../../inversify.config'; +import { PreferencesHandlerTheia } from '../../../utils/theia/PreferencesHandlerTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { NavigationBar } from '../../../pageobjects/ide/theia/NavigationBar'; +import { Dashboard } from '../../../pageobjects/dashboard/Dashboard'; +import CheReporter from '../../../driver/CheReporter'; -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const navigationBar: NavigationBar = e2eContainer.get(CLASSES.NavigationBar); const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard); @@ -32,7 +32,7 @@ suite(`${stack} test`, async () => { workspaceHandlingTests.createAndOpenWorkspace(stack); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { - CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + CheReporter.registerRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); projectAndFileTests.waitWorkspaceReadiness(workspaceSampleName, workspaceRootFolderName, false); @@ -44,7 +44,7 @@ suite(`${stack} test`, async () => { suite ('Stopping and deleting the workspace', async () => { test(`Stop and remowe workspace`, async () => { await navigationBar.openNavigationBar(); - await dashboard.stopAndRemoveWorkspaceByUI(WorkspaceHandlingTests.getWorkspaceName()); + await dashboard.stopAndRemoveWorkspaceByUI(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); }); }); diff --git a/tests/e2e/tests/devfiles/DotNetCore.spec.ts b/tests/e2e/tests/devfiles/theia/DotNetCore.spec.ts similarity index 74% rename from tests/e2e/tests/devfiles/DotNetCore.spec.ts rename to tests/e2e/tests/devfiles/theia/DotNetCore.spec.ts index 3518e46cdfd..f71df9d5173 100644 --- a/tests/e2e/tests/devfiles/DotNetCore.spec.ts +++ b/tests/e2e/tests/devfiles/theia/DotNetCore.spec.ts @@ -8,19 +8,19 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { CLASSES } from '../../inversify.types'; -import { e2eContainer } from '../../inversify.config'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { LanguageServerTests } from '../../testsLibrary/LanguageServerTests'; -import { CodeExecutionTests } from '../../testsLibrary/CodeExecutionTests'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { CLASSES } from '../../../inversify.types'; +import { e2eContainer } from '../../../inversify.config'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageServerTestsTheia'; +import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import CheReporter from '../../../driver/CheReporter'; -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); -const commonLanguageServerTests: LanguageServerTests = e2eContainer.get(CLASSES.LanguageServerTests); -const codeExecutionTests: CodeExecutionTests = e2eContainer.get(CLASSES.CodeExecutionTests); +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); +const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); +const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); const editor: Editor = e2eContainer.get(CLASSES.Editor); const workspaceSampleName: string = 'dotnet-web-simple'; @@ -38,7 +38,7 @@ suite(`Test ${stack}`, async () => { workspaceHandlingTests.createAndOpenWorkspace(stack); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { - CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + CheReporter.registerRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); projectAndFileTests.waitWorkspaceReadinessNoSubfolder(workspaceSampleName, false); }); @@ -72,7 +72,7 @@ suite(`Test ${stack}`, async () => { suite ('Stopping and deleting the workspace', async () => { test(`Stop and remowe workspace`, async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); }); }); diff --git a/tests/e2e/tests/devfiles/Go.spec.ts b/tests/e2e/tests/devfiles/theia/Go.spec.ts similarity index 69% rename from tests/e2e/tests/devfiles/Go.spec.ts rename to tests/e2e/tests/devfiles/theia/Go.spec.ts index 232c7a2e54c..9bcf1dc6cf0 100644 --- a/tests/e2e/tests/devfiles/Go.spec.ts +++ b/tests/e2e/tests/devfiles/theia/Go.spec.ts @@ -7,22 +7,22 @@ * * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ -import { CLASSES } from '../../inversify.types'; -import { e2eContainer } from '../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { e2eContainer } from '../../../inversify.config'; import 'reflect-metadata'; -import { Logger } from '../../utils/Logger'; -import { PreferencesHandler } from '../../utils/PreferencesHandler'; -import { LanguageServerTests } from '../../testsLibrary/LanguageServerTests'; -import { CodeExecutionTests } from '../../testsLibrary/CodeExecutionTests'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { Logger } from '../../../utils/Logger'; +import { PreferencesHandlerTheia } from '../../../utils/theia/PreferencesHandlerTheia'; +import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageServerTestsTheia'; +import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import CheReporter from '../../../driver/CheReporter'; -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); -const commonLanguageServerTests: LanguageServerTests = e2eContainer.get(CLASSES.LanguageServerTests); -const codeExecutionTests: CodeExecutionTests = e2eContainer.get(CLASSES.CodeExecutionTests); -const preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); +const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); +const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); +const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); const workspaceStack: string = 'Go'; const workspaceSampleName: string = 'golang-example'; @@ -41,7 +41,7 @@ suite(`${workspaceStack} test`, async () => { workspaceHandlingTests.createAndOpenWorkspace(workspaceStack); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { - CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + CheReporter.registerRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); projectAndFileTests.waitWorkspaceReadiness(workspaceSampleName, workspaceSubfolderName, false); test('Workaround for issue #16113', async () => { @@ -74,7 +74,7 @@ suite(`${workspaceStack} test`, async () => { suite('Stop and remove workspace', async() => { test(`Stop and remove workspace`, async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); }); diff --git a/tests/e2e/tests/devfiles/JavaMaven.spec.ts b/tests/e2e/tests/devfiles/theia/JavaMaven.spec.ts similarity index 68% rename from tests/e2e/tests/devfiles/JavaMaven.spec.ts rename to tests/e2e/tests/devfiles/theia/JavaMaven.spec.ts index e15f0234294..56e0b45f0f1 100644 --- a/tests/e2e/tests/devfiles/JavaMaven.spec.ts +++ b/tests/e2e/tests/devfiles/theia/JavaMaven.spec.ts @@ -8,18 +8,18 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { CLASSES } from '../../inversify.types'; -import { LanguageServerTests } from '../../testsLibrary/LanguageServerTests'; -import { e2eContainer } from '../../inversify.config'; -import { CodeExecutionTests } from '../../testsLibrary/CodeExecutionTests'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { CLASSES } from '../../../inversify.types'; +import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageServerTestsTheia'; +import { e2eContainer } from '../../../inversify.config'; +import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import CheReporter from '../../../driver/CheReporter'; -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); -const commonLanguageServerTests: LanguageServerTests = e2eContainer.get(CLASSES.LanguageServerTests); -const codeExecutionTests: CodeExecutionTests = e2eContainer.get(CLASSES.CodeExecutionTests); +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); +const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); +const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); const workspaceSampleName: string = 'console-java-simple'; const workspaceRootFolderName: string = 'src'; @@ -34,7 +34,7 @@ suite(`${stack} test`, async () => { workspaceHandlingTests.createAndOpenWorkspace(stack); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { - CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + CheReporter.registerRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); projectAndFileTests.waitWorkspaceReadiness(workspaceSampleName, workspaceRootFolderName, false); }); @@ -58,7 +58,7 @@ suite(`${stack} test`, async () => { suite('Stopping and deleting the workspace', async () => { test(`Stop and remowe workspace`, async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); }); }); diff --git a/tests/e2e/tests/devfiles/JavaSpringBoot.spec.ts b/tests/e2e/tests/devfiles/theia/JavaSpringBoot.spec.ts similarity index 76% rename from tests/e2e/tests/devfiles/JavaSpringBoot.spec.ts rename to tests/e2e/tests/devfiles/theia/JavaSpringBoot.spec.ts index b77c51356d1..a7bb1f64d77 100644 --- a/tests/e2e/tests/devfiles/JavaSpringBoot.spec.ts +++ b/tests/e2e/tests/devfiles/theia/JavaSpringBoot.spec.ts @@ -8,27 +8,27 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { CLASSES } from '../../inversify.types'; -import { LanguageServerTests } from '../../testsLibrary/LanguageServerTests'; -import { e2eContainer } from '../../inversify.config'; -import { CodeExecutionTests } from '../../testsLibrary/CodeExecutionTests'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; -import { CreateWorkspace } from '../../pageobjects/dashboard/CreateWorkspace'; -import { Logger } from '../../utils/Logger'; -import { ApiUrlResolver } from '../../utils/workspace/ApiUrlResolver'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { Dashboard } from '../../pageobjects/dashboard/Dashboard'; -import { DriverHelper } from '../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; +import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageServerTestsTheia'; +import { e2eContainer } from '../../../inversify.config'; +import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import CheReporter from '../../../driver/CheReporter'; +import { CreateWorkspace } from '../../../pageobjects/dashboard/CreateWorkspace'; +import { Logger } from '../../../utils/Logger'; +import { ApiUrlResolver } from '../../../utils/workspace/ApiUrlResolver'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { Dashboard } from '../../../pageobjects/dashboard/Dashboard'; +import { DriverHelper } from '../../../utils/DriverHelper'; import { By, until } from 'selenium-webdriver'; import { Workbench } from 'monaco-page-objects'; -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); -const commonLanguageServerTests: LanguageServerTests = e2eContainer.get(CLASSES.LanguageServerTests); -const codeExecutionTests: CodeExecutionTests = e2eContainer.get(CLASSES.CodeExecutionTests); +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); +const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); +const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard); const createWorkspace: CreateWorkspace = e2eContainer.get(CLASSES.CreateWorkspace); const apiUrlResolver: ApiUrlResolver = e2eContainer.get(CLASSES.ApiUrlResolver); @@ -60,7 +60,7 @@ suite(`${stack} test`, async () => { }); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { - CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + CheReporter.registerRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); test('Wait workspace readiness', async() => { try { @@ -109,7 +109,7 @@ suite(`${stack} test`, async () => { suite('Stopping and deleting the workspace', async () => { test(`Stop and remowe workspace`, async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); }); }); diff --git a/tests/e2e/tests/devfiles/JavaVertx.spec.ts b/tests/e2e/tests/devfiles/theia/JavaVertx.spec.ts similarity index 69% rename from tests/e2e/tests/devfiles/JavaVertx.spec.ts rename to tests/e2e/tests/devfiles/theia/JavaVertx.spec.ts index 886cb9a0ec2..e650a621f2f 100644 --- a/tests/e2e/tests/devfiles/JavaVertx.spec.ts +++ b/tests/e2e/tests/devfiles/theia/JavaVertx.spec.ts @@ -8,18 +8,18 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { CLASSES } from '../../inversify.types'; -import { LanguageServerTests } from '../../testsLibrary/LanguageServerTests'; -import { e2eContainer } from '../../inversify.config'; -import { CodeExecutionTests } from '../../testsLibrary/CodeExecutionTests'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { CLASSES } from '../../../inversify.types'; +import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageServerTestsTheia'; +import { e2eContainer } from '../../../inversify.config'; +import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import CheReporter from '../../../driver/CheReporter'; -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); -const commonLanguageServerTests: LanguageServerTests = e2eContainer.get(CLASSES.LanguageServerTests); -const codeExecutionTests: CodeExecutionTests = e2eContainer.get(CLASSES.CodeExecutionTests); +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); +const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); +const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); const workspaceSampleName: string = 'vertx-http-example'; const workspaceRootFolderName: string = 'src'; @@ -34,7 +34,7 @@ suite(`${stack} test`, async () => { workspaceHandlingTests.createAndOpenWorkspace(stack); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { - CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + CheReporter.registerRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); projectAndFileTests.waitWorkspaceReadiness(workspaceSampleName, workspaceRootFolderName, false); }); @@ -58,7 +58,7 @@ suite(`${stack} test`, async () => { suite ('Stopping and deleting the workspace', async () => { test(`Stop and remowe workspace`, async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); }); diff --git a/tests/e2e/tests/devfiles/NodeJS.spec.ts b/tests/e2e/tests/devfiles/theia/NodeJS.spec.ts similarity index 71% rename from tests/e2e/tests/devfiles/NodeJS.spec.ts rename to tests/e2e/tests/devfiles/theia/NodeJS.spec.ts index 5841b59415e..c3a7011acc3 100644 --- a/tests/e2e/tests/devfiles/NodeJS.spec.ts +++ b/tests/e2e/tests/devfiles/theia/NodeJS.spec.ts @@ -7,19 +7,19 @@ * * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ -import { CLASSES } from '../../inversify.types'; +import { CLASSES } from '../../../inversify.types'; import 'reflect-metadata'; -import { LanguageServerTests } from '../../testsLibrary/LanguageServerTests'; -import { e2eContainer } from '../../inversify.config'; -import { CodeExecutionTests } from '../../testsLibrary/CodeExecutionTests'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageServerTestsTheia'; +import { e2eContainer } from '../../../inversify.config'; +import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import CheReporter from '../../../driver/CheReporter'; -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); -const commonLanguageServerTests: LanguageServerTests = e2eContainer.get(CLASSES.LanguageServerTests); -const codeExecutionTests: CodeExecutionTests = e2eContainer.get(CLASSES.CodeExecutionTests); +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); +const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); +const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); const workspaceStack: string = 'NodeJS Express Web Application'; const workspaceSampleName: string = 'nodejs-web-app'; @@ -37,7 +37,7 @@ suite(`${workspaceStack} test`, async () => { workspaceHandlingTests.createAndOpenWorkspace(workspaceStack); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { - CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + CheReporter.registerRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); projectAndFileTests.waitWorkspaceReadiness(workspaceSampleName, workspaceRootFolderName, false); }); @@ -65,7 +65,7 @@ suite(`${workspaceStack} test`, async () => { suite('Stop and remove workspace', async() => { test(`Stop and remowe workspace`, async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); }); }); diff --git a/tests/e2e/tests/devfiles/PHPSimple.spec.ts b/tests/e2e/tests/devfiles/theia/PHPSimple.spec.ts similarity index 71% rename from tests/e2e/tests/devfiles/PHPSimple.spec.ts rename to tests/e2e/tests/devfiles/theia/PHPSimple.spec.ts index cf59ddd7041..fb449291438 100644 --- a/tests/e2e/tests/devfiles/PHPSimple.spec.ts +++ b/tests/e2e/tests/devfiles/theia/PHPSimple.spec.ts @@ -8,19 +8,19 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES } from '../../inversify.types'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { LanguageServerTests } from '../../testsLibrary/LanguageServerTests'; -import { CodeExecutionTests } from '../../testsLibrary/CodeExecutionTests'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageServerTestsTheia'; +import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import CheReporter from '../../../driver/CheReporter'; -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); -const commonLanguageServerTests: LanguageServerTests = e2eContainer.get(CLASSES.LanguageServerTests); -const codeExecutionTests: CodeExecutionTests = e2eContainer.get(CLASSES.CodeExecutionTests); +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); +const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); +const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); const editor: Editor = e2eContainer.get(CLASSES.Editor); const workspaceSampleName: string = 'php-web-simple'; @@ -36,7 +36,7 @@ suite(`${stack} test`, async () => { workspaceHandlingTests.createAndOpenWorkspace(stack); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { - CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + CheReporter.registerRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); projectAndFileTests.waitWorkspaceReadinessNoSubfolder(workspaceSampleName, false); }); @@ -64,7 +64,7 @@ suite(`${stack} test`, async () => { suite ('Stopping and deleting the workspace', async () => { test(`Stop and remowe workspace`, async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); }); diff --git a/tests/e2e/tests/devfiles/Python.spec.ts b/tests/e2e/tests/devfiles/theia/Python.spec.ts similarity index 66% rename from tests/e2e/tests/devfiles/Python.spec.ts rename to tests/e2e/tests/devfiles/theia/Python.spec.ts index 1ea257ff7bf..1a2d1a2eedb 100644 --- a/tests/e2e/tests/devfiles/Python.spec.ts +++ b/tests/e2e/tests/devfiles/theia/Python.spec.ts @@ -7,19 +7,19 @@ * * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ -import { CLASSES } from '../../inversify.types'; +import { CLASSES } from '../../../inversify.types'; import 'reflect-metadata'; -import { LanguageServerTests } from '../../testsLibrary/LanguageServerTests'; -import { e2eContainer } from '../../inversify.config'; -import { CodeExecutionTests } from '../../testsLibrary/CodeExecutionTests'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageServerTestsTheia'; +import { e2eContainer } from '../../../inversify.config'; +import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import CheReporter from '../../../driver/CheReporter'; -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); -const commonLanguageServerTests: LanguageServerTests = e2eContainer.get(CLASSES.LanguageServerTests); -const codeExecutionTests: CodeExecutionTests = e2eContainer.get(CLASSES.CodeExecutionTests); +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); +const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); +const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); const workspaceStack: string = 'Python'; const workspaceSampleName: string = 'python-hello-world'; @@ -34,7 +34,7 @@ suite(`${workspaceStack} test`, async () => { workspaceHandlingTests.createAndOpenWorkspace(workspaceStack); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { - CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + CheReporter.registerRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); projectAndFileTests.waitWorkspaceReadinessNoSubfolder(workspaceSampleName, false); }); @@ -58,7 +58,7 @@ suite(`${workspaceStack} test`, async () => { suite ('Stopping and deleting the workspace', async () => { test(`Stop and remowe workspace`, async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); }); }); diff --git a/tests/e2e/tests/devfiles/PythonDjango.spec.ts b/tests/e2e/tests/devfiles/theia/PythonDjango.spec.ts similarity index 74% rename from tests/e2e/tests/devfiles/PythonDjango.spec.ts rename to tests/e2e/tests/devfiles/theia/PythonDjango.spec.ts index 70b29bc8766..ecdcae112e4 100644 --- a/tests/e2e/tests/devfiles/PythonDjango.spec.ts +++ b/tests/e2e/tests/devfiles/theia/PythonDjango.spec.ts @@ -7,17 +7,17 @@ * * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ -import { CLASSES } from '../../inversify.types'; +import { CLASSES } from '../../../inversify.types'; import 'reflect-metadata'; -import { CodeExecutionTests } from '../../testsLibrary/CodeExecutionTests'; -import { e2eContainer } from '../../inversify.config'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; +import { e2eContainer } from '../../../inversify.config'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import CheReporter from '../../../driver/CheReporter'; -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); -const codeExecutionTests: CodeExecutionTests = e2eContainer.get(CLASSES.CodeExecutionTests); +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); +const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); const workspaceStack: string = 'Python Django'; const workspaceSampleName: string = 'django-realworld-example-app'; @@ -36,7 +36,7 @@ suite(`${workspaceStack} test`, async () => { workspaceHandlingTests.createAndOpenWorkspace(workspaceStack); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { - CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + CheReporter.registerRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); projectAndFileTests.waitWorkspaceReadiness(workspaceSampleName, workspaceRootFolderName, false); }); @@ -61,7 +61,7 @@ suite(`${workspaceStack} test`, async () => { suite ('Stopping and deleting the workspace', async () => { test(`Stop and remowe workspace`, async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); }); }); diff --git a/tests/e2e/tests/devfiles/Quarkus.spec.ts b/tests/e2e/tests/devfiles/theia/Quarkus.spec.ts similarity index 73% rename from tests/e2e/tests/devfiles/Quarkus.spec.ts rename to tests/e2e/tests/devfiles/theia/Quarkus.spec.ts index 7a963ff6cf0..1d67229dc1a 100644 --- a/tests/e2e/tests/devfiles/Quarkus.spec.ts +++ b/tests/e2e/tests/devfiles/theia/Quarkus.spec.ts @@ -7,19 +7,19 @@ * * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ -import { CLASSES } from '../../inversify.types'; +import { CLASSES } from '../../../inversify.types'; import 'reflect-metadata'; -import { LanguageServerTests } from '../../testsLibrary/LanguageServerTests'; -import { e2eContainer } from '../../inversify.config'; -import { CodeExecutionTests } from '../../testsLibrary/CodeExecutionTests'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageServerTestsTheia'; +import { e2eContainer } from '../../../inversify.config'; +import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import CheReporter from '../../../driver/CheReporter'; -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); -const commonLanguageServerTests: LanguageServerTests = e2eContainer.get(CLASSES.LanguageServerTests); -const codeExecutionTests: CodeExecutionTests = e2eContainer.get(CLASSES.CodeExecutionTests); +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); +const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); +const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); const workspaceStack: string = 'Quarkus CLI'; const workspaceSampleName: string = 'quarkus-quickstarts'; @@ -36,7 +36,7 @@ suite(`${workspaceStack} test`, async () => { workspaceHandlingTests.createAndOpenWorkspace(workspaceStack); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { - CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + CheReporter.registerRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); projectAndFileTests.waitWorkspaceReadiness(workspaceSampleName, workspaceRootFolderName, false); }); @@ -70,7 +70,7 @@ suite(`${workspaceStack} test`, async () => { suite('Stop and remove workspace', async() => { test(`Stop and remowe workspace`, async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); }); }); diff --git a/tests/e2e/tests/devfiles/Scala.spec.ts b/tests/e2e/tests/devfiles/theia/Scala.spec.ts similarity index 72% rename from tests/e2e/tests/devfiles/Scala.spec.ts rename to tests/e2e/tests/devfiles/theia/Scala.spec.ts index 95460b340f4..c3e002bbe69 100644 --- a/tests/e2e/tests/devfiles/Scala.spec.ts +++ b/tests/e2e/tests/devfiles/theia/Scala.spec.ts @@ -8,18 +8,18 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { CLASSES } from '../../inversify.types'; -import { LanguageServerTests } from '../../testsLibrary/LanguageServerTests'; -import { e2eContainer } from '../../inversify.config'; -import { CodeExecutionTests } from '../../testsLibrary/CodeExecutionTests'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { CLASSES } from '../../../inversify.types'; +import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageServerTestsTheia'; +import { e2eContainer } from '../../../inversify.config'; +import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import CheReporter from '../../../driver/CheReporter'; -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); -const commonLanguageServerTests: LanguageServerTests = e2eContainer.get(CLASSES.LanguageServerTests); -const codeExecutionTests: CodeExecutionTests = e2eContainer.get(CLASSES.CodeExecutionTests); +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); +const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); +const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); const workspaceSampleName: string = 'console-scala-simple'; const workspaceRootFolderName: string = 'example'; @@ -36,7 +36,7 @@ suite.skip(`${stack} test`, async () => { workspaceHandlingTests.createAndOpenWorkspace(stack); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { - CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + CheReporter.registerRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); projectAndFileTests.waitWorkspaceReadiness(workspaceSampleName, workspaceRootFolderName, false); }); @@ -64,7 +64,7 @@ suite.skip(`${stack} test`, async () => { suite ('Stopping and deleting the workspace', async () => { test(`Stop and remowe workspace`, async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); }); }); diff --git a/tests/e2e/tests/e2e/FactoryUrl.spec.ts b/tests/e2e/tests/e2e/theia/FactoryUrl.spec.ts similarity index 66% rename from tests/e2e/tests/e2e/FactoryUrl.spec.ts rename to tests/e2e/tests/e2e/theia/FactoryUrl.spec.ts index fa90f5827d2..f5fc98152ca 100644 --- a/tests/e2e/tests/e2e/FactoryUrl.spec.ts +++ b/tests/e2e/tests/e2e/theia/FactoryUrl.spec.ts @@ -8,18 +8,18 @@ // * SPDX-License-Identifier: EPL-2.0 // **********************************************************************/ -import { e2eContainer } from '../../inversify.config'; -import { CLASSES, TYPES } from '../../inversify.types'; -import { TestConstants } from '../../TestConstants'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { ITestWorkspaceUtil } from '../../utils/workspace/ITestWorkspaceUtil'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES, TYPES } from '../../../inversify.types'; +import { TestConstants } from '../../../TestConstants'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { ITestWorkspaceUtil } from '../../../utils/workspace/ITestWorkspaceUtil'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const testWorkspaceUtils: ITestWorkspaceUtil = e2eContainer.get(TYPES.WorkspaceUtil); -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); const factoryUrl : string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=https://raw.githubusercontent.com/eclipse/che-devfile-registry/master/devfiles/java-maven/devfile.yaml`; const workspaceSampleName: string = 'console-java-simple'; @@ -40,7 +40,7 @@ suite('Workspace creation via factory url', async () => { suite ('Stopping and deleting the workspace', async () => { test('Stop and remove workspace', async () => { - await testWorkspaceUtils.cleanUpRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await testWorkspaceUtils.cleanUpRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); }); diff --git a/tests/e2e/tests/e2e/GitPublishBranch.spec.ts b/tests/e2e/tests/e2e/theia/GitPublishBranch.spec.ts similarity index 79% rename from tests/e2e/tests/e2e/GitPublishBranch.spec.ts rename to tests/e2e/tests/e2e/theia/GitPublishBranch.spec.ts index 15000d63679..c1a0e7a2a93 100644 --- a/tests/e2e/tests/e2e/GitPublishBranch.spec.ts +++ b/tests/e2e/tests/e2e/theia/GitPublishBranch.spec.ts @@ -8,23 +8,23 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ -import { e2eContainer } from '../../inversify.config'; -import { CLASSES, TYPES } from '../../inversify.types'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { GitPlugin } from '../../pageobjects/ide/plugins/GitPlugin'; -import { Ide } from '../../pageobjects/ide/Ide'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; -import { QuickOpenContainer } from '../../pageobjects/ide/QuickOpenContainer'; -import { ICheLoginPage } from '../../pageobjects/login/ICheLoginPage'; -import { TestConstants } from '../../TestConstants'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { TopMenu } from '../../pageobjects/ide/TopMenu'; -import { WorkspaceNameHandler } from '../../utils/WorkspaceNameHandler'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES, TYPES } from '../../../inversify.types'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { GitPlugin } from '../../../pageobjects/ide/theia/plugins/GitPlugin'; +import { Ide } from '../../../pageobjects/ide/theia/Ide'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; +import { QuickOpenContainer } from '../../../pageobjects/ide/theia/QuickOpenContainer'; +import { ICheLoginPage } from '../../../pageobjects/login/ICheLoginPage'; +import { TestConstants } from '../../../TestConstants'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { TopMenu } from '../../../pageobjects/ide/theia/TopMenu'; +import { WorkspaceNameHandler } from '../../../utils/WorkspaceNameHandler'; import { By } from 'selenium-webdriver'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { ITestWorkspaceUtil } from '../../utils/workspace/ITestWorkspaceUtil'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { ITestWorkspaceUtil } from '../../../utils/workspace/ITestWorkspaceUtil'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import CheReporter from '../../../driver/CheReporter'; const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); @@ -54,7 +54,7 @@ suite('Publish branch in git extension', async () => { test('Login into workspace', async () => { await browserTabsUtil.navigateTo(workspacePrefixUrl + wsNameGitPublishBranch); await loginPage.login(); - WorkspaceHandlingTests.setWorkspaceName(wsNameGitPublishBranch); + WorkspaceHandlingTestsTheia.setWorkspaceName(wsNameGitPublishBranch); CheReporter.registerRunningWorkspace(wsNameGitPublishBranch); await ide.waitWorkspaceAndIde(); await projectTree.openProjectTreeContainer(); diff --git a/tests/e2e/tests/e2e/GitSelfSignCert.spec.ts b/tests/e2e/tests/e2e/theia/GitSelfSignCert.spec.ts similarity index 77% rename from tests/e2e/tests/e2e/GitSelfSignCert.spec.ts rename to tests/e2e/tests/e2e/theia/GitSelfSignCert.spec.ts index 717365d20fb..6115338bc03 100644 --- a/tests/e2e/tests/e2e/GitSelfSignCert.spec.ts +++ b/tests/e2e/tests/e2e/theia/GitSelfSignCert.spec.ts @@ -8,25 +8,25 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ -import { e2eContainer } from '../../inversify.config'; -import { CLASSES, TYPES } from '../../inversify.types'; -import { GitPlugin } from '../../pageobjects/ide/plugins/GitPlugin'; -import { Ide } from '../../pageobjects/ide/Ide'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; -import { QuickOpenContainer } from '../../pageobjects/ide/QuickOpenContainer'; -import { ICheLoginPage } from '../../pageobjects/login/ICheLoginPage'; -import { TestConstants } from '../../TestConstants'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { TopMenu } from '../../pageobjects/ide/TopMenu'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { Dashboard } from '../../pageobjects/dashboard/Dashboard'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { ITestWorkspaceUtil } from '../../utils/workspace/ITestWorkspaceUtil'; -import CheReporter from '../../driver/CheReporter'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES, TYPES } from '../../../inversify.types'; +import { GitPlugin } from '../../../pageobjects/ide/theia/plugins/GitPlugin'; +import { Ide } from '../../../pageobjects/ide/theia/Ide'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; +import { QuickOpenContainer } from '../../../pageobjects/ide/theia/QuickOpenContainer'; +import { ICheLoginPage } from '../../../pageobjects/login/ICheLoginPage'; +import { TestConstants } from '../../../TestConstants'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { TopMenu } from '../../../pageobjects/ide/theia/TopMenu'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { Dashboard } from '../../../pageobjects/dashboard/Dashboard'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { ITestWorkspaceUtil } from '../../../utils/workspace/ITestWorkspaceUtil'; +import CheReporter from '../../../driver/CheReporter'; -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); const ide: Ide = e2eContainer.get(CLASSES.Ide); const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper); const quickOpenContainer: QuickOpenContainer = e2eContainer.get(CLASSES.QuickOpenContainer); @@ -49,7 +49,7 @@ suite('Checking git + self sign cert', async () => { suiteSetup(async function () { const wsConfig = await testWorkspaceUtils.getBaseDevfile(); wsConfig.metadata!.name = workspaceName; - WorkspaceHandlingTests.setWorkspaceName(workspaceName); + WorkspaceHandlingTestsTheia.setWorkspaceName(workspaceName); CheReporter.registerRunningWorkspace(workspaceName); await browserTabsUtil.navigateTo(TestConstants.TS_SELENIUM_BASE_URL); await loginPage.login(); diff --git a/tests/e2e/tests/e2e/GitSsh.spec.ts b/tests/e2e/tests/e2e/theia/GitSsh.spec.ts similarity index 80% rename from tests/e2e/tests/e2e/GitSsh.spec.ts rename to tests/e2e/tests/e2e/theia/GitSsh.spec.ts index 323f806dfd0..8991f2d7da4 100644 --- a/tests/e2e/tests/e2e/GitSsh.spec.ts +++ b/tests/e2e/tests/e2e/theia/GitSsh.spec.ts @@ -9,26 +9,26 @@ **********************************************************************/ import { assert } from 'chai'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES, TYPES } from '../../inversify.types'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { GitPlugin } from '../../pageobjects/ide/plugins/GitPlugin'; -import { Ide } from '../../pageobjects/ide/Ide'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; -import { QuickOpenContainer } from '../../pageobjects/ide/QuickOpenContainer'; -import { ICheLoginPage } from '../../pageobjects/login/ICheLoginPage'; -import { TestConstants } from '../../TestConstants'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { WorkspaceNameHandler } from '../../utils/WorkspaceNameHandler'; -import { CheGitApi } from '../../utils/VCS/CheGitApi'; -import { GitHubUtil } from '../../utils/VCS/github/GitHubUtil'; -import { TopMenu } from '../../pageobjects/ide/TopMenu'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { Dashboard } from '../..'; -import { ITestWorkspaceUtil } from '../../utils/workspace/ITestWorkspaceUtil'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES, TYPES } from '../../../inversify.types'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { GitPlugin } from '../../../pageobjects/ide/theia/plugins/GitPlugin'; +import { Ide } from '../../../pageobjects/ide/theia/Ide'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; +import { QuickOpenContainer } from '../../../pageobjects/ide/theia/QuickOpenContainer'; +import { ICheLoginPage } from '../../../pageobjects/login/ICheLoginPage'; +import { TestConstants } from '../../../TestConstants'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { WorkspaceNameHandler } from '../../../utils/WorkspaceNameHandler'; +import { CheGitApi } from '../../../utils/VCS/CheGitApi'; +import { GitHubUtil } from '../../../utils/VCS/github/GitHubUtil'; +import { TopMenu } from '../../../pageobjects/ide/theia/TopMenu'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { Dashboard } from '../../../pageobjects/dashboard/Dashboard'; +import { ITestWorkspaceUtil } from '../../../utils/workspace/ITestWorkspaceUtil'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import CheReporter from '../../../driver/CheReporter'; const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper); const ide: Ide = e2eContainer.get(CLASSES.Ide); @@ -62,7 +62,7 @@ suite('Git with ssh workflow', async () => { test('Login into workspace and open tree container', async () => { await dashboard.openDashboard(); await browserTabsUtil.navigateTo(workspacePrefixUrl + wsNameCheckGeneratingKeys); - WorkspaceHandlingTests.setWorkspaceName(wsNameCheckGeneratingKeys); + WorkspaceHandlingTestsTheia.setWorkspaceName(wsNameCheckGeneratingKeys); CheReporter.registerRunningWorkspace(wsNameCheckGeneratingKeys); await ide.waitWorkspaceAndIde(); await projectTree.openProjectTreeContainer(); @@ -113,7 +113,7 @@ suite('Git with ssh workflow', async () => { await testWorkspaceUtils.createWsFromDevFile(data); await dashboard.openDashboard(); await browserTabsUtil.navigateTo(workspacePrefixUrl + wsNameCheckPropagatingKeys); - WorkspaceHandlingTests.setWorkspaceName(wsNameCheckPropagatingKeys); + WorkspaceHandlingTestsTheia.setWorkspaceName(wsNameCheckPropagatingKeys); CheReporter.registerRunningWorkspace(wsNameCheckGeneratingKeys); await ide.waitWorkspaceAndIde(); await projectTree.openProjectTreeContainer(); diff --git a/tests/e2e/tests/e2e/OpenshiftConnector.spec.ts b/tests/e2e/tests/e2e/theia/OpenshiftConnector.spec.ts similarity index 80% rename from tests/e2e/tests/e2e/OpenshiftConnector.spec.ts rename to tests/e2e/tests/e2e/theia/OpenshiftConnector.spec.ts index 283e2d479da..9b698edaab6 100644 --- a/tests/e2e/tests/e2e/OpenshiftConnector.spec.ts +++ b/tests/e2e/tests/e2e/theia/OpenshiftConnector.spec.ts @@ -8,26 +8,26 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES, TYPES } from '../../../inversify.types'; +import { Dashboard } from '../../../pageobjects/dashboard/Dashboard'; +import { Ide } from '../../../pageobjects/ide/theia/Ide'; +import { Buttons, Locations, OpenDialogWidget } from '../../../pageobjects/ide/theia/OpenDialogWidget'; +import { OpenshiftAppExplorerToolbar, OpenshiftContextMenuItems, OpenshiftPlugin } from '../../../pageobjects/ide/theia/plugins/OpenshiftPlugin'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; +import { QuickOpenContainer } from '../../../pageobjects/ide/theia/QuickOpenContainer'; +import { Terminal } from '../../../pageobjects/ide/theia/Terminal'; +import { TopMenu } from '../../../pageobjects/ide/theia/TopMenu'; +import { ICheLoginPage } from '../../../pageobjects/login/ICheLoginPage'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TestConstants } from '../../../TestConstants'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { PreferencesHandlerTheia, TerminalRendererTypeTheia } from '../../../utils/theia/PreferencesHandlerTheia'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { ITestWorkspaceUtil } from '../../../utils/workspace/ITestWorkspaceUtil'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import CheReporter from '../../../driver/CheReporter'; import { Key } from 'selenium-webdriver'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES, TYPES } from '../../inversify.types'; -import { Dashboard } from '../../pageobjects/dashboard/Dashboard'; -import { Ide } from '../../pageobjects/ide/Ide'; -import { Buttons, Locations, OpenDialogWidget } from '../../pageobjects/ide/OpenDialogWidget'; -import { OpenshiftAppExplorerToolbar, OpenshiftContextMenuItems, OpenshiftPlugin } from '../../pageobjects/ide/plugins/OpenshiftPlugin'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; -import { QuickOpenContainer } from '../../pageobjects/ide/QuickOpenContainer'; -import { Terminal } from '../../pageobjects/ide/Terminal'; -import { TopMenu } from '../../pageobjects/ide/TopMenu'; -import { ICheLoginPage } from '../../pageobjects/login/ICheLoginPage'; -import { TestConstants } from '../../TestConstants'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { PreferencesHandler, TerminalRendererType } from '../../utils/PreferencesHandler'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { ITestWorkspaceUtil } from '../../utils/workspace/ITestWorkspaceUtil'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper); const ide: Ide = e2eContainer.get(CLASSES.Ide); @@ -37,7 +37,7 @@ const openshiftPlugin: OpenshiftPlugin = e2eContainer.get(CLASSES.OpenshiftPlugi const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard); const quickOpenContainer: QuickOpenContainer = e2eContainer.get(CLASSES.QuickOpenContainer); const openDialogWidget: OpenDialogWidget = e2eContainer.get(CLASSES.OpenDialogWidget); -const preferencesHalder: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); +const preferencesHalder: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); const terminal: Terminal = e2eContainer.get(CLASSES.Terminal); const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); const topMenu: TopMenu = e2eContainer.get(CLASSES.TopMenu); @@ -50,7 +50,7 @@ suite('Openshift connector user story', async () => { let wsName: string; suiteSetup(async function () { - preferencesHalder.setTerminalType(TerminalRendererType.dom); + preferencesHalder.setTerminalType(TerminalRendererTypeTheia.dom); const wsConfig = await testWorkspaceUtils.getBaseDevfile(); wsName = wsConfig.metadata!.name!; wsConfig.projects = [ @@ -78,7 +78,7 @@ suite('Openshift connector user story', async () => { test('Login into workspace and open plugin', async () => { await dashboard.openDashboard(); await browserTabsUtil.navigateTo(workspacePrefixUrl + wsName); - WorkspaceHandlingTests.setWorkspaceName(wsName); + WorkspaceHandlingTestsTheia.setWorkspaceName(wsName); CheReporter.registerRunningWorkspace(wsName); await ide.waitWorkspaceAndIde(); await projectTree.openProjectTreeContainer(); diff --git a/tests/e2e/tests/e2e/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.ts b/tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.ts similarity index 69% rename from tests/e2e/tests/e2e/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.ts rename to tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.ts index 407876f6a45..ab18c3a7903 100644 --- a/tests/e2e/tests/e2e/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.ts +++ b/tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.ts @@ -8,17 +8,17 @@ // * SPDX-License-Identifier: EPL-2.0 // **********************************************************************/ -import { e2eContainer } from '../../../inversify.config'; -import { CLASSES } from '../../../inversify.types'; -import { TestConstants } from '../../../TestConstants'; -import { ProjectAndFileTests } from '../../../testsLibrary/ProjectAndFileTests'; -import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; -import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; -import { PreferencesHandler } from '../../../utils/PreferencesHandler'; - -const preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); +import { e2eContainer } from '../../../../inversify.config'; +import { CLASSES } from '../../../../inversify.types'; +import { TestConstants } from '../../../../TestConstants'; +import { ProjectAndFileTestsTheia } from '../../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { BrowserTabsUtil } from '../../../../utils/BrowserTabsUtil'; +import { WorkspaceHandlingTestsTheia } from '../../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { PreferencesHandlerTheia } from '../../../../utils/theia/PreferencesHandlerTheia'; + +const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const factoryUrl : string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=https://github.com/che-samples/console-java-simple/tree/master/src`; @@ -53,7 +53,7 @@ suite('Workspace creation via factory url', async () => { suite ('Stopping and deleting the workspace', async () => { test('Stop and remove workspace', async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); }); diff --git a/tests/e2e/tests/e2e/factories/DirectUrlFactoryWithRootFolderTest.spec.ts b/tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithRootFolderTest.spec.ts similarity index 68% rename from tests/e2e/tests/e2e/factories/DirectUrlFactoryWithRootFolderTest.spec.ts rename to tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithRootFolderTest.spec.ts index f4e5f12f7b0..e1153b5167e 100644 --- a/tests/e2e/tests/e2e/factories/DirectUrlFactoryWithRootFolderTest.spec.ts +++ b/tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithRootFolderTest.spec.ts @@ -8,17 +8,17 @@ // * SPDX-License-Identifier: EPL-2.0 // **********************************************************************/ -import { e2eContainer } from '../../../inversify.config'; -import { CLASSES } from '../../../inversify.types'; -import { TestConstants } from '../../../TestConstants'; -import { ProjectAndFileTests } from '../../../testsLibrary/ProjectAndFileTests'; -import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; -import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; -import { PreferencesHandler } from '../../../utils/PreferencesHandler'; - -const preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); +import { e2eContainer } from '../../../../inversify.config'; +import { CLASSES } from '../../../../inversify.types'; +import { TestConstants } from '../../../../TestConstants'; +import { ProjectAndFileTestsTheia } from '../../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { BrowserTabsUtil } from '../../../../utils/BrowserTabsUtil'; +import { WorkspaceHandlingTestsTheia } from '../../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { PreferencesHandlerTheia } from '../../../../utils/theia/PreferencesHandlerTheia'; + +const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const factoryUrl : string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=https://github.com/che-samples/console-java-simple`; @@ -50,7 +50,7 @@ suite('Workspace creation via factory url', async () => { suite ('Stopping and deleting the workspace', async () => { test('Stop and remove workspace', async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); }); diff --git a/tests/e2e/tests/e2e/factories/DirectUrlFactoryWithSpecificBranchTest.spec.ts b/tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithSpecificBranchTest.spec.ts similarity index 68% rename from tests/e2e/tests/e2e/factories/DirectUrlFactoryWithSpecificBranchTest.spec.ts rename to tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithSpecificBranchTest.spec.ts index 111f2e718c1..622b7220c32 100644 --- a/tests/e2e/tests/e2e/factories/DirectUrlFactoryWithSpecificBranchTest.spec.ts +++ b/tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithSpecificBranchTest.spec.ts @@ -8,17 +8,17 @@ // * SPDX-License-Identifier: EPL-2.0 // **********************************************************************/ -import { e2eContainer } from '../../../inversify.config'; -import { CLASSES } from '../../../inversify.types'; -import { TestConstants } from '../../../TestConstants'; -import { ProjectAndFileTests } from '../../../testsLibrary/ProjectAndFileTests'; -import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; -import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; -import { PreferencesHandler } from '../../../utils/PreferencesHandler'; - -const preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); +import { e2eContainer } from '../../../../inversify.config'; +import { CLASSES } from '../../../../inversify.types'; +import { TestConstants } from '../../../../TestConstants'; +import { ProjectAndFileTestsTheia } from '../../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { BrowserTabsUtil } from '../../../../utils/BrowserTabsUtil'; +import { WorkspaceHandlingTestsTheia } from '../../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { PreferencesHandlerTheia } from '../../../../utils/theia/PreferencesHandlerTheia'; + +const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); let factoryUrl : string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=https://github.com/che-samples/console-java-simple/tree/java1.11`; @@ -50,7 +50,7 @@ suite('Workspace creation via factory url', async () => { suite ('Stopping and deleting the workspace', async () => { test('Stop and remove workspace', async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); }); diff --git a/tests/e2e/tests/e2e_happy_path/DevWorkspaceHappyPath.spec.ts b/tests/e2e/tests/e2e_happy_path/theia/DevWorkspaceHappyPath.spec.ts similarity index 92% rename from tests/e2e/tests/e2e_happy_path/DevWorkspaceHappyPath.spec.ts rename to tests/e2e/tests/e2e_happy_path/theia/DevWorkspaceHappyPath.spec.ts index 168ec0ffc68..c14d39ed1e3 100644 --- a/tests/e2e/tests/e2e_happy_path/DevWorkspaceHappyPath.spec.ts +++ b/tests/e2e/tests/e2e_happy_path/theia/DevWorkspaceHappyPath.spec.ts @@ -7,25 +7,25 @@ // * // * SPDX-License-Identifier: EPL-2.0 // **********************************************************************/ -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { CLASSES } from '../../inversify.types'; -import { DebugView } from '../../pageobjects/ide/DebugView'; -import { DialogWindow } from '../../pageobjects/ide/DialogWindow'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { e2eContainer } from '../../inversify.config'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { Ide, LeftToolbarButton } from '../../pageobjects/ide/Ide'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { CLASSES } from '../../../inversify.types'; +import { DebugView } from '../../../pageobjects/ide/theia/DebugView'; +import { DialogWindow } from '../../../pageobjects/ide/theia/DialogWindow'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { e2eContainer } from '../../../inversify.config'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { Ide, LeftToolbarButton } from '../../../pageobjects/ide/theia/Ide'; import { Key, error, By } from 'selenium-webdriver'; -import { Logger } from '../../utils/Logger'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; -import { Terminal } from '../../pageobjects/ide/Terminal'; -import { TestConstants } from '../../TestConstants'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { TopMenu } from '../../pageobjects/ide/TopMenu'; +import { Logger } from '../../../utils/Logger'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; +import { Terminal } from '../../../pageobjects/ide/theia/Terminal'; +import { TestConstants } from '../../../TestConstants'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TopMenu } from '../../../pageobjects/ide/theia/TopMenu'; import * as fs from 'fs'; import axios from 'axios'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import CheReporter from '../../../driver/CheReporter'; const ide: Ide = e2eContainer.get(CLASSES.Ide); const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); @@ -57,7 +57,7 @@ const SpringAppLocators = { suite('Workspace creation via factory url', async () => { let factoryUrl : string = `${TestConstants.TS_SELENIUM_DEVWORKSPACE_URL}`; - const workspaceRootFolderName: string = 'src'; + // const workspaceRootFolderName: string = 'src'; suite('Open factory URL', async () => { // this is DevWorkspace test specific - we create the test ws. using factory instead of chectl @@ -66,7 +66,7 @@ suite('Workspace creation via factory url', async () => { }); test('Register running workspace', async () => { - WorkspaceHandlingTests.setWorkspaceName(projectName); + WorkspaceHandlingTestsTheia.setWorkspaceName(projectName); CheReporter.registerRunningWorkspace(projectName); }); diff --git a/tests/e2e/tests/e2e_happy_path/HappyPath.spec.ts b/tests/e2e/tests/e2e_happy_path/theia/HappyPath.spec.ts similarity index 91% rename from tests/e2e/tests/e2e_happy_path/HappyPath.spec.ts rename to tests/e2e/tests/e2e_happy_path/theia/HappyPath.spec.ts index ea237f2d887..b59a01a5bf3 100644 --- a/tests/e2e/tests/e2e_happy_path/HappyPath.spec.ts +++ b/tests/e2e/tests/e2e_happy_path/theia/HappyPath.spec.ts @@ -8,28 +8,28 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ -import { e2eContainer } from '../../inversify.config'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { CLASSES } from '../../inversify.types'; -import { Ide, LeftToolbarButton } from '../../pageobjects/ide/Ide'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; -import { TopMenu } from '../../pageobjects/ide/TopMenu'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { PreviewWidget } from '../../pageobjects/ide/PreviewWidget'; -import { TestConstants } from '../../TestConstants'; +import { e2eContainer } from '../../../inversify.config'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { CLASSES } from '../../../inversify.types'; +import { Ide, LeftToolbarButton } from '../../../pageobjects/ide/theia/Ide'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; +import { TopMenu } from '../../../pageobjects/ide/theia/TopMenu'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { PreviewWidget } from '../../../pageobjects/ide/theia/PreviewWidget'; +import { TestConstants } from '../../../TestConstants'; import { By, Key, error } from 'selenium-webdriver'; -import { DebugView } from '../../pageobjects/ide/DebugView'; -import { DialogWindow } from '../../pageobjects/ide/DialogWindow'; -import { Terminal } from '../../pageobjects/ide/Terminal'; +import { DebugView } from '../../../pageobjects/ide/theia/DebugView'; +import { DialogWindow } from '../../../pageobjects/ide/theia/DialogWindow'; +import { Terminal } from '../../../pageobjects/ide/theia/Terminal'; import * as fs from 'fs'; -import { Workspaces } from '../../pageobjects/dashboard/Workspaces'; -import { Dashboard } from '../../pageobjects/dashboard/Dashboard'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { Logger } from '../../utils/Logger'; -import { RightToolBar } from '../../pageobjects/ide/RightToolBar'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import CheReporter from '../../driver/CheReporter'; +import { Workspaces } from '../../../pageobjects/dashboard/Workspaces'; +import { Dashboard } from '../../../pageobjects/dashboard/Dashboard'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { Logger } from '../../../utils/Logger'; +import { RightToolBar } from '../../../pageobjects/ide/theia/RightToolBar'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import CheReporter from '../../../driver/CheReporter'; const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper); const ide: Ide = e2eContainer.get(CLASSES.Ide); @@ -46,6 +46,7 @@ const warningDialog: DialogWindow = e2eContainer.get(CLASSES.DialogWindow); const projectName: string = 'petclinic'; const workspaceRootFolderName: string = 'src'; const workspaceName: string = TestConstants.TS_SELENIUM_HAPPY_PATH_WORKSPACE_NAME; + const pathToJavaFolder: string = `${projectName}/${workspaceRootFolderName}/main/java/org/springframework/samples/petclinic`; const pathToChangedJavaFileFolder: string = `${projectName}/${workspaceRootFolderName}/main/java/org/springframework/samples/petclinic/system`; const classPathFilename: string = '.classpath'; @@ -76,7 +77,7 @@ suite('Validation of workspace start', async () => { }); test('Register running workspace', async () => { - WorkspaceHandlingTests.setWorkspaceName(workspaceName); + WorkspaceHandlingTestsTheia.setWorkspaceName(workspaceName); CheReporter.registerRunningWorkspace(workspaceName); }); diff --git a/tests/e2e/tests/intelij/IntelijOpenWorkspace.spec.ts b/tests/e2e/tests/intelij/IntelijOpenWorkspace.spec.ts index 87fa5e0a330..7c17cebe3ae 100644 --- a/tests/e2e/tests/intelij/IntelijOpenWorkspace.spec.ts +++ b/tests/e2e/tests/intelij/IntelijOpenWorkspace.spec.ts @@ -11,7 +11,7 @@ import { By } from 'selenium-webdriver'; import { e2eContainer } from '../../inversify.config'; import { CLASSES } from '../../inversify.types'; -import { Ide } from '../../pageobjects/ide/Ide'; +import { Ide } from '../../pageobjects/ide/theia/Ide'; import { DriverHelper } from '../../utils/DriverHelper'; import { TestConstants } from '../../TestConstants'; import { Dashboard } from '../../pageobjects/dashboard/Dashboard'; diff --git a/tests/e2e/tests/load_test/LoadTest.spec.ts b/tests/e2e/tests/load_test/theia/LoadTest.spec.ts similarity index 70% rename from tests/e2e/tests/load_test/LoadTest.spec.ts rename to tests/e2e/tests/load_test/theia/LoadTest.spec.ts index a4a86cfec35..4a5144f31da 100644 --- a/tests/e2e/tests/load_test/LoadTest.spec.ts +++ b/tests/e2e/tests/load_test/theia/LoadTest.spec.ts @@ -8,15 +8,16 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ -import { e2eContainer } from '../../inversify.config'; -import { CLASSES, TYPES } from '../../inversify.types'; -import { Ide } from '../../pageobjects/ide/Ide'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; -import { ICheLoginPage } from '../../pageobjects/login/ICheLoginPage'; -import { TestConstants, WorkspaceNameHandler } from '../..'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { ITestWorkspaceUtil } from '../../utils/workspace/ITestWorkspaceUtil'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES, TYPES } from '../../../inversify.types'; +import { Ide } from '../../../pageobjects/ide/theia/Ide'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; +import { ICheLoginPage } from '../../../pageobjects/login/ICheLoginPage'; +import { TestConstants } from '../../../TestConstants'; +import { WorkspaceNameHandler } from '../../../utils/WorkspaceNameHandler'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { ITestWorkspaceUtil } from '../../../utils/workspace/ITestWorkspaceUtil'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const ide: Ide = e2eContainer.get(CLASSES.Ide); @@ -44,7 +45,7 @@ suite('Load test suite', async () => { }); test('Wait loading workspace and get time', async () => { - WorkspaceHandlingTests.setWorkspaceName(workspaceName); + WorkspaceHandlingTestsTheia.setWorkspaceName(workspaceName); await ide.waitWorkspaceAndIde(); await projectTree.openProjectTreeContainer(); }); diff --git a/tests/e2e/tests/plugins/GitHubPullRequestPlugin.spec.ts b/tests/e2e/tests/plugins/theia/GitHubPullRequestPlugin.spec.ts similarity index 81% rename from tests/e2e/tests/plugins/GitHubPullRequestPlugin.spec.ts rename to tests/e2e/tests/plugins/theia/GitHubPullRequestPlugin.spec.ts index 86b17a5ea61..4d1e450194c 100644 --- a/tests/e2e/tests/plugins/GitHubPullRequestPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/GitHubPullRequestPlugin.spec.ts @@ -8,28 +8,28 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES } from '../../inversify.types'; -import { Ide } from '../../pageobjects/ide/Ide'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { TestConstants } from '../../TestConstants'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import { Logger } from '../../utils/Logger'; -import { GitHubPullRequestPlugin } from '../../pageobjects/ide/plugins/GitHubPullRequestPlugin'; -import { GitLoginPage } from '../../pageobjects/third-parties/GitLoginPage'; -import { GitOauthAppsSettings } from '../../pageobjects/third-parties/GitOauthAppsSettings'; -import { WorkspaceNameHandler } from '../../utils/WorkspaceNameHandler'; -import { GitPlugin } from '../../pageobjects/ide/plugins/GitPlugin'; -import { TopMenu } from '../../pageobjects/ide/TopMenu'; -import { QuickOpenContainer } from '../../pageobjects/ide/QuickOpenContainer'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { Ide } from '../../../pageobjects/ide/theia/Ide'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TestConstants } from '../../../TestConstants'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { Logger } from '../../../utils/Logger'; +import { GitHubPullRequestPlugin } from '../../../pageobjects/ide/theia/plugins/GitHubPullRequestPlugin'; +import { GitLoginPage } from '../../../pageobjects/third-parties/GitLoginPage'; +import { GitOauthAppsSettings } from '../../../pageobjects/third-parties/GitOauthAppsSettings'; +import { WorkspaceNameHandler } from '../../../utils/WorkspaceNameHandler'; +import { GitPlugin } from '../../../pageobjects/ide/theia/plugins/GitPlugin'; +import { TopMenu } from '../../../pageobjects/ide/theia/TopMenu'; +import { QuickOpenContainer } from '../../../pageobjects/ide/theia/QuickOpenContainer'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; import { Key } from 'selenium-webdriver'; const ide: Ide = e2eContainer.get(CLASSES.Ide); const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); -const workspaceHandling: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); +const workspaceHandling: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const gitHubPullRequestPlugin: GitHubPullRequestPlugin = e2eContainer.get(CLASSES.GitHubPullRequestPlugin); const githubLoginPage: GitLoginPage = e2eContainer.get(CLASSES.GitLoginPage); @@ -39,7 +39,6 @@ const topMenu: TopMenu = e2eContainer.get(CLASSES.TopMenu); const quickOpenContainer: QuickOpenContainer = e2eContainer.get(CLASSES.QuickOpenContainer); const editor: Editor = e2eContainer.get(CLASSES.Editor); const workspaceNameHandler: WorkspaceNameHandler = e2eContainer.get(CLASSES.WorkspaceNameHandler); -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const devfileUrl: string = `https://raw.githubusercontent.com/eclipse/che/main/tests/e2e/files/devfiles/plugins/GitHubPullRequestPlugin.yaml`; const factoryUrl: string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=${devfileUrl}`; @@ -76,7 +75,7 @@ suite(`The 'GitHubPullRequestPlugin' test`, async () => { await browserTabsUtil.navigateTo(factoryUrl); }); - workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); + workspaceHandling.obtainWorkspaceNameFromStartingPage(); test('Wait until created workspace is started', async () => { await ide.waitIde(TimeoutConstants.TS_SELENIUM_START_WORKSPACE_TIMEOUT); @@ -137,7 +136,7 @@ suite(`The 'GitHubPullRequestPlugin' test`, async () => { suite('Stopping and deleting the workspace', async () => { test(`Stop and remove workspace`, async () => { if (TestConstants.TS_DELETE_PLUGINS_TEST_WORKSPACE === 'true') { - await workspaceHandling.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandling.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); return; } diff --git a/tests/e2e/tests/plugins/InstallPluginUsingUI.spec.ts b/tests/e2e/tests/plugins/theia/InstallPluginUsingUI.spec.ts similarity index 73% rename from tests/e2e/tests/plugins/InstallPluginUsingUI.spec.ts rename to tests/e2e/tests/plugins/theia/InstallPluginUsingUI.spec.ts index 9158ac27537..4e38b37eaeb 100644 --- a/tests/e2e/tests/plugins/InstallPluginUsingUI.spec.ts +++ b/tests/e2e/tests/plugins/theia/InstallPluginUsingUI.spec.ts @@ -8,24 +8,23 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES } from '../../inversify.types'; -import { Ide } from '../../pageobjects/ide/Ide'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { TestConstants } from '../../TestConstants'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { PluginsView } from '../../pageobjects/ide/plugins/PluginsView'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import { Logger } from '../../utils/Logger'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { Ide } from '../../../pageobjects/ide/theia/Ide'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TestConstants } from '../../../TestConstants'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { PluginsView } from '../../../pageobjects/ide/theia/plugins/PluginsView'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { Logger } from '../../../utils/Logger'; const ide: Ide = e2eContainer.get(CLASSES.Ide); const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); const pluginsView: PluginsView = e2eContainer.get(CLASSES.PluginsView); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); -const workspaceHandling: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); +const workspaceHandling: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); const devfileUrl: string = 'https://raw.githubusercontent.com/eclipse/che/main/tests/e2e/files/devfiles/plugins/InstallPluginUsingUI.yaml'; const factoryUrl: string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=${devfileUrl}`; @@ -38,7 +37,7 @@ suite(`The 'InstallPluginUsingUI' test`, async () => { await browserTabsUtil.navigateTo(factoryUrl); }); - workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); + workspaceHandling.obtainWorkspaceNameFromStartingPage(); test('Wait until created workspace is started', async () => { await ide.waitIde(TimeoutConstants.TS_SELENIUM_START_WORKSPACE_TIMEOUT); @@ -67,7 +66,7 @@ suite(`The 'InstallPluginUsingUI' test`, async () => { suite('Stopping and deleting the workspace', async () => { test(`Stop and remove workspace`, async () => { if (TestConstants.TS_DELETE_PLUGINS_TEST_WORKSPACE === 'true') { - await workspaceHandling.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandling.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); return; } diff --git a/tests/e2e/tests/plugins/JavaPlugin.spec.ts b/tests/e2e/tests/plugins/theia/JavaPlugin.spec.ts similarity index 76% rename from tests/e2e/tests/plugins/JavaPlugin.spec.ts rename to tests/e2e/tests/plugins/theia/JavaPlugin.spec.ts index d5d84310592..47e4e95f0b8 100644 --- a/tests/e2e/tests/plugins/JavaPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/JavaPlugin.spec.ts @@ -8,25 +8,25 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES } from '../../inversify.types'; -import { Ide } from '../../pageobjects/ide/Ide'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { TestConstants } from '../../TestConstants'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { Ide } from '../../../pageobjects/ide/theia/Ide'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TestConstants } from '../../../TestConstants'; import { Key } from 'selenium-webdriver'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import { Logger } from '../../utils/Logger'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { PreferencesHandler } from '../../utils/PreferencesHandler'; - -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { Logger } from '../../../utils/Logger'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { PreferencesHandlerTheia } from '../../../utils/theia/PreferencesHandlerTheia'; + +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const ide: Ide = e2eContainer.get(CLASSES.Ide); const editor: Editor = e2eContainer.get(CLASSES.Editor); -const preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); +const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); const devFileUrl: string = 'https://github.com/che-samples/java-guestbook/tree/devfilev2'; const factoryUrl: string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=${devFileUrl}`; @@ -89,7 +89,7 @@ suite(`The 'JavaPlugin' test`, async () => { suite('Stopping and deleting the workspace', async () => { test('Stop and remove workspace', async () => { if (TestConstants.TS_DELETE_PLUGINS_TEST_WORKSPACE === 'true') { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); return; } diff --git a/tests/e2e/tests/plugins/PhpPlugin.spec.ts b/tests/e2e/tests/plugins/theia/PhpPlugin.spec.ts similarity index 82% rename from tests/e2e/tests/plugins/PhpPlugin.spec.ts rename to tests/e2e/tests/plugins/theia/PhpPlugin.spec.ts index d43a7878a5b..a0510a35eba 100644 --- a/tests/e2e/tests/plugins/PhpPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/PhpPlugin.spec.ts @@ -8,21 +8,21 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES } from '../../inversify.types'; -import { Ide, LeftToolbarButton } from '../../pageobjects/ide/Ide'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { TestConstants } from '../../TestConstants'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { Ide, LeftToolbarButton } from '../../../pageobjects/ide/theia/Ide'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TestConstants } from '../../../TestConstants'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; import { Key } from 'selenium-webdriver'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { TopMenu } from '../../pageobjects/ide/TopMenu'; -import { DebugView } from '../../pageobjects/ide/DebugView'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import { Logger } from '../../utils/Logger'; - -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { TopMenu } from '../../../pageobjects/ide/theia/TopMenu'; +import { DebugView } from '../../../pageobjects/ide/theia/DebugView'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { Logger } from '../../../utils/Logger'; + +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); const ide: Ide = e2eContainer.get(CLASSES.Ide); const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); const editor: Editor = e2eContainer.get(CLASSES.Editor); @@ -105,7 +105,7 @@ suite(`The 'PhpPlugin' tests`, async () => { suite('Stopping and deleting the workspace', async () => { test('Stop and remove workspace', async () => { if (TestConstants.TS_DELETE_PLUGINS_TEST_WORKSPACE === 'true') { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); return; } diff --git a/tests/e2e/tests/plugins/PythonPlugin.spec.ts b/tests/e2e/tests/plugins/theia/PythonPlugin.spec.ts similarity index 73% rename from tests/e2e/tests/plugins/PythonPlugin.spec.ts rename to tests/e2e/tests/plugins/theia/PythonPlugin.spec.ts index 981306c655b..ffc8f6bd386 100644 --- a/tests/e2e/tests/plugins/PythonPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/PythonPlugin.spec.ts @@ -8,25 +8,25 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES } from '../../inversify.types'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { TestConstants } from '../../TestConstants'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { TestConstants } from '../../../TestConstants'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; import { Key } from 'selenium-webdriver'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import { Logger } from '../../utils/Logger'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; -import { PreferencesHandler } from '../../utils/PreferencesHandler'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { Logger } from '../../../utils/Logger'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; +import { PreferencesHandlerTheia } from '../../../utils/theia/PreferencesHandlerTheia'; +import { TimeoutConstants } from '../../../TimeoutConstants'; -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); const editor: Editor = e2eContainer.get(CLASSES.Editor); -const preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); +const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); const devFileUrl: string = 'https://github.com/che-samples/python-hello-world/tree/devfilev2'; const factoryUrl: string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=${devFileUrl}`; @@ -76,7 +76,7 @@ suite(`The 'PythonPlugin' test`, async () => { suite('Stopping and deleting the workspace', async () => { test('Stop and remove workspace', async () => { if (TestConstants.TS_DELETE_PLUGINS_TEST_WORKSPACE === 'true') { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); return; } diff --git a/tests/e2e/tests/plugins/TypescriptPlugin.spec.ts b/tests/e2e/tests/plugins/theia/TypescriptPlugin.spec.ts similarity index 82% rename from tests/e2e/tests/plugins/TypescriptPlugin.spec.ts rename to tests/e2e/tests/plugins/theia/TypescriptPlugin.spec.ts index 6a2c7807cb7..3e32d726ec6 100644 --- a/tests/e2e/tests/plugins/TypescriptPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/TypescriptPlugin.spec.ts @@ -8,26 +8,26 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES } from '../../inversify.types'; -import { Ide, LeftToolbarButton } from '../../pageobjects/ide/Ide'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { TestConstants } from '../../TestConstants'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { Ide, LeftToolbarButton } from '../../../pageobjects/ide/theia/Ide'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TestConstants } from '../../../TestConstants'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; import { Key, By } from 'selenium-webdriver'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { TopMenu } from '../../pageobjects/ide/TopMenu'; -import { DebugView } from '../../pageobjects/ide/DebugView'; -import { Terminal } from '../../pageobjects/ide/Terminal'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import { Logger } from '../../utils/Logger'; -import { PreferencesHandler } from '../../utils/PreferencesHandler'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; - -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { TopMenu } from '../../../pageobjects/ide/theia/TopMenu'; +import { DebugView } from '../../../pageobjects/ide/theia/DebugView'; +import { Terminal } from '../../../pageobjects/ide/theia/Terminal'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { Logger } from '../../../utils/Logger'; +import { PreferencesHandlerTheia } from '../../../utils/theia/PreferencesHandlerTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; + +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper); const ide: Ide = e2eContainer.get(CLASSES.Ide); const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); @@ -36,7 +36,7 @@ const topMenu: TopMenu = e2eContainer.get(CLASSES.TopMenu); const debugView: DebugView = e2eContainer.get(CLASSES.DebugView); const terminal: Terminal = e2eContainer.get(CLASSES.Terminal); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); -const preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); +const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); const devfileUrl: string = 'https://github.com/che-samples/web-nodejs-sample/tree/typescript-plugin'; const factoryUrl: string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=${devfileUrl}`; @@ -158,7 +158,7 @@ suite(`The 'TypescriptPlugin and Node-debug' tests`, async () => { suite('Stopping and deleting the workspace', async () => { test('Stop and remove workspace', async () => { if (TestConstants.TS_DELETE_PLUGINS_TEST_WORKSPACE === 'true') { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); return; } diff --git a/tests/e2e/tests/plugins/VscodeKubernetesPlugin.spec.ts b/tests/e2e/tests/plugins/theia/VscodeKubernetesPlugin.spec.ts similarity index 75% rename from tests/e2e/tests/plugins/VscodeKubernetesPlugin.spec.ts rename to tests/e2e/tests/plugins/theia/VscodeKubernetesPlugin.spec.ts index d7e58f1e594..5e823e6d05b 100644 --- a/tests/e2e/tests/plugins/VscodeKubernetesPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/VscodeKubernetesPlugin.spec.ts @@ -8,21 +8,21 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES } from '../../inversify.types'; -import { Ide } from '../../pageobjects/ide/Ide'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { TestConstants } from '../../TestConstants'; -import { KubernetesPlugin } from '../../pageobjects/ide/plugins/KubernetesPlugin'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import { Logger } from '../../utils/Logger'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { TopMenu } from '../../pageobjects/ide/TopMenu'; -import { QuickOpenContainer } from '../../pageobjects/ide/QuickOpenContainer'; -import { OpenDialogWidget, Buttons } from '../../pageobjects/ide/OpenDialogWidget'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { Ide } from '../../../pageobjects/ide/theia/Ide'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TestConstants } from '../../../TestConstants'; +import { KubernetesPlugin } from '../../../pageobjects/ide/theia/plugins/KubernetesPlugin'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { Logger } from '../../../utils/Logger'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { TopMenu } from '../../../pageobjects/ide/theia/TopMenu'; +import { QuickOpenContainer } from '../../../pageobjects/ide/theia/QuickOpenContainer'; +import { OpenDialogWidget, Buttons } from '../../../pageobjects/ide/theia/OpenDialogWidget'; -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const ide: Ide = e2eContainer.get(CLASSES.Ide); const kubernetesPlugin: KubernetesPlugin = e2eContainer.get(CLASSES.KubernetesPlugin); @@ -73,7 +73,7 @@ suite(`The 'VscodeKubernetesPlugin' test`, async () => { suite('Stopping and deleting the workspace', async () => { test('Stop and remove workspace', async () => { if (TestConstants.TS_DELETE_PLUGINS_TEST_WORKSPACE === 'true') { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); return; } diff --git a/tests/e2e/tests/plugins/VscodeShellcheckPlugin.spec.ts b/tests/e2e/tests/plugins/theia/VscodeShellcheckPlugin.spec.ts similarity index 78% rename from tests/e2e/tests/plugins/VscodeShellcheckPlugin.spec.ts rename to tests/e2e/tests/plugins/theia/VscodeShellcheckPlugin.spec.ts index a78d960497a..0705917ffb3 100644 --- a/tests/e2e/tests/plugins/VscodeShellcheckPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/VscodeShellcheckPlugin.spec.ts @@ -8,23 +8,23 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ import 'reflect-metadata'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES } from '../../inversify.types'; -import { Ide } from '../../pageobjects/ide/Ide'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { TestConstants } from '../../TestConstants'; -import { PreferencesHandler } from '../../utils/PreferencesHandler'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { Ide } from '../../../pageobjects/ide/theia/Ide'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { TestConstants } from '../../../TestConstants'; +import { PreferencesHandlerTheia } from '../../../utils/theia/PreferencesHandlerTheia'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; import { Key } from 'selenium-webdriver'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import { Logger } from '../../utils/Logger'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { Logger } from '../../../utils/Logger'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const ide: Ide = e2eContainer.get(CLASSES.Ide); -const preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); +const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); const editor: Editor = e2eContainer.get(CLASSES.Editor); const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); @@ -90,7 +90,7 @@ suite(`The 'VscodeShellcheckPlugin' test`, async () => { suite('Stopping and deleting the workspace', async () => { test('Stop and remove workspace', async () => { if (TestConstants.TS_DELETE_PLUGINS_TEST_WORKSPACE === 'true') { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); return; } diff --git a/tests/e2e/tests/plugins/VscodeValePlugin.spec.ts b/tests/e2e/tests/plugins/theia/VscodeValePlugin.spec.ts similarity index 78% rename from tests/e2e/tests/plugins/VscodeValePlugin.spec.ts rename to tests/e2e/tests/plugins/theia/VscodeValePlugin.spec.ts index a02e592aef4..fe825225e75 100644 --- a/tests/e2e/tests/plugins/VscodeValePlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/VscodeValePlugin.spec.ts @@ -8,25 +8,25 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { Ide } from '../../../pageobjects/ide/theia/Ide'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { TestConstants } from '../../../TestConstants'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { Terminal } from '../../../pageobjects/ide/theia/Terminal'; +import { Logger } from '../../../utils/Logger'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; import { Key } from 'selenium-webdriver'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES } from '../../inversify.types'; -import { Ide } from '../../pageobjects/ide/Ide'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { TestConstants } from '../../TestConstants'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { Terminal } from '../../pageobjects/ide/Terminal'; -import { Logger } from '../../utils/Logger'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; const ide: Ide = e2eContainer.get(CLASSES.Ide); const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); const editor: Editor = e2eContainer.get(CLASSES.Editor); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const terminal: Terminal = e2eContainer.get(CLASSES.Terminal); -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); const devfileUrl: string = 'https://raw.githubusercontent.com/eclipse/che/main/tests/e2e/files/devfiles/plugins/VscodeValePlugin.yaml'; const factoryUrl: string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=${devfileUrl}`; @@ -75,7 +75,7 @@ suite('The "VscodeValePlugin" userstory', async () => { suite('Stopping and deleting the workspace', async () => { test('Stop and remove workspace', async () => { if (TestConstants.TS_DELETE_PLUGINS_TEST_WORKSPACE === 'true') { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); return; } diff --git a/tests/e2e/tests/plugins/VscodeXmlPlugin.spec.ts b/tests/e2e/tests/plugins/theia/VscodeXmlPlugin.spec.ts similarity index 79% rename from tests/e2e/tests/plugins/VscodeXmlPlugin.spec.ts rename to tests/e2e/tests/plugins/theia/VscodeXmlPlugin.spec.ts index 1bef6959e9a..22e9962c560 100644 --- a/tests/e2e/tests/plugins/VscodeXmlPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/VscodeXmlPlugin.spec.ts @@ -8,23 +8,23 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { TestConstants } from '../../../TestConstants'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { PreferencesHandlerTheia } from '../../../utils/theia/PreferencesHandlerTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; import { Key } from 'selenium-webdriver'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES } from '../../inversify.types'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { TestConstants } from '../../TestConstants'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { PreferencesHandler } from '../../utils/PreferencesHandler'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; - -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); + +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); const editor: Editor = e2eContainer.get(CLASSES.Editor); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); const devfileUrl: string = TestConstants.TS_TEST_WORKSPACE_DEVFILE_REPO || 'https://github.com/che-samples/web-nodejs-sample/tree/xml-plugin'; const factoryUrl: string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=${devfileUrl}`; @@ -97,7 +97,7 @@ suite('The "VscodeXmlPlugin" userstory', async () => { suite ('Stopping and deleting the workspace', async () => { test('Stop and remove workspace', async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); }); diff --git a/tests/e2e/tests/plugins/VscodeYamlPlugin.spec.ts b/tests/e2e/tests/plugins/theia/VscodeYamlPlugin.spec.ts similarity index 78% rename from tests/e2e/tests/plugins/VscodeYamlPlugin.spec.ts rename to tests/e2e/tests/plugins/theia/VscodeYamlPlugin.spec.ts index 208fa308b99..ae6bebbfc7e 100644 --- a/tests/e2e/tests/plugins/VscodeYamlPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/VscodeYamlPlugin.spec.ts @@ -8,23 +8,23 @@ * SPDX-License-Identifier: EPL-2.0 **********************************************************************/ +import { e2eContainer } from '../../../inversify.config'; +import { CLASSES } from '../../../inversify.types'; +import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; +import { Editor } from '../../../pageobjects/ide/theia/Editor'; +import { TestConstants } from '../../../TestConstants'; +import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { PreferencesHandlerTheia } from '../../../utils/theia/PreferencesHandlerTheia'; +import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; import { Key } from 'selenium-webdriver'; -import { e2eContainer } from '../../inversify.config'; -import { CLASSES } from '../../inversify.types'; -import { ProjectTree } from '../../pageobjects/ide/ProjectTree'; -import { Editor } from '../../pageobjects/ide/Editor'; -import { TestConstants } from '../../TestConstants'; -import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { PreferencesHandler } from '../../utils/PreferencesHandler'; -import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests'; - -const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests); + +const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); const editor: Editor = e2eContainer.get(CLASSES.Editor); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); -const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); -const preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); +const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); const devfileUrl: string = TestConstants.TS_TEST_WORKSPACE_DEVFILE_REPO || 'https://github.com/che-samples/web-nodejs-sample/tree/yaml-plugin'; const factoryUrl: string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=${devfileUrl}`; @@ -92,7 +92,7 @@ suite('The "VscodeYamlPlugin" userstory', async () => { suite ('Stopping and deleting the workspace', async () => { test('Stop and remove workspace', async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); }); }); diff --git a/tests/e2e/testsLibrary/CodeExecutionTests.ts b/tests/e2e/testsLibrary/theia/CodeExecutionTestsTheia.ts similarity index 89% rename from tests/e2e/testsLibrary/CodeExecutionTests.ts rename to tests/e2e/testsLibrary/theia/CodeExecutionTestsTheia.ts index badc63995c3..d1a765fb5b0 100644 --- a/tests/e2e/testsLibrary/CodeExecutionTests.ts +++ b/tests/e2e/testsLibrary/theia/CodeExecutionTestsTheia.ts @@ -10,21 +10,21 @@ import 'reflect-metadata'; import Axios from 'axios'; -import { CLASSES } from '../inversify.types'; +import { CLASSES } from '../../inversify.types'; import { inject, injectable } from 'inversify'; import { By, error, Key } from 'selenium-webdriver'; -import { Ide } from '../pageobjects/ide/Ide'; -import { Terminal } from '../pageobjects/ide/Terminal'; -import { TopMenu } from '../pageobjects/ide/TopMenu'; -import { DialogWindow } from '../pageobjects/ide/DialogWindow'; -import { DriverHelper } from '../utils/DriverHelper'; -import { Logger } from '../utils/Logger'; -import { QuickOpenContainer } from '../pageobjects/ide/QuickOpenContainer'; -import { WorkspaceHandlingTests } from './WorkspaceHandlingTests'; -import { BrowserTabsUtil } from '../utils/BrowserTabsUtil'; +import { Ide } from '../../pageobjects/ide/theia/Ide'; +import { Terminal } from '../../pageobjects/ide/theia/Terminal'; +import { TopMenu } from '../../pageobjects/ide/theia/TopMenu'; +import { DialogWindow } from '../../pageobjects/ide/theia/DialogWindow'; +import { DriverHelper } from '../../utils/DriverHelper'; +import { Logger } from '../../utils/Logger'; +import { QuickOpenContainer } from '../../pageobjects/ide/theia/QuickOpenContainer'; +import { WorkspaceHandlingTestsTheia } from './WorkspaceHandlingTestsTheia'; +import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; @injectable() -export class CodeExecutionTests { +export class CodeExecutionTestsTheia { private static lastApplicationUrl: string = ''; @@ -36,7 +36,7 @@ export class CodeExecutionTests { @inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper, @inject(CLASSES.QuickOpenContainer) private readonly quickOpenContainer: QuickOpenContainer, @inject(CLASSES.BrowserTabsUtil) private readonly browserTabsUtil: BrowserTabsUtil, - @inject(CLASSES.WorkspaceHandlingTests) private readonly workspaceHandlingTests: WorkspaceHandlingTests) {} + @inject(CLASSES.WorkspaceHandlingTestsTheia) private readonly workspaceHandlingTests: WorkspaceHandlingTestsTheia) {} public runTask(taskName: string, timeout: number) { test(`Run command '${taskName}'`, async () => { @@ -115,7 +115,7 @@ export class CodeExecutionTests { this.workspaceHandlingTests.setWindowHandle(await this.browserTabsUtil.getCurrentWindowHandle()); await this.ide.clickOnNotificationButton(notificationText, buttonText); await this.driverHelper.wait(5_000); - CodeExecutionTests.lastApplicationUrl = await this.driverHelper.getDriver().getCurrentUrl(); + CodeExecutionTestsTheia.lastApplicationUrl = await this.driverHelper.getDriver().getCurrentUrl(); }); } @@ -129,7 +129,7 @@ export class CodeExecutionTests { this.workspaceHandlingTests.setWindowHandle(await this.browserTabsUtil.getCurrentWindowHandle()); await this.ide.clickOnNotificationButton(notificationText, 'Open In Preview'); await this.driverHelper.wait(5_000); - CodeExecutionTests.lastApplicationUrl = await this.driverHelper.getDriver().getCurrentUrl(); + CodeExecutionTestsTheia.lastApplicationUrl = await this.driverHelper.getDriver().getCurrentUrl(); }); } @@ -140,7 +140,7 @@ export class CodeExecutionTests { this.workspaceHandlingTests.setWindowHandle(await this.browserTabsUtil.getCurrentWindowHandle()); await this.ide.waitNotificationAndOpenLink(portOpenText, timeout); await this.driverHelper.wait(5_000); - CodeExecutionTests.lastApplicationUrl = await this.driverHelper.getDriver().getCurrentUrl(); + CodeExecutionTestsTheia.lastApplicationUrl = await this.driverHelper.getDriver().getCurrentUrl(); }); } @@ -169,7 +169,7 @@ export class CodeExecutionTests { } public getLastApplicationUrl(): string { - return CodeExecutionTests.lastApplicationUrl; + return CodeExecutionTestsTheia.lastApplicationUrl; } /** diff --git a/tests/e2e/testsLibrary/LanguageServerTests.ts b/tests/e2e/testsLibrary/theia/LanguageServerTestsTheia.ts similarity index 94% rename from tests/e2e/testsLibrary/LanguageServerTests.ts rename to tests/e2e/testsLibrary/theia/LanguageServerTestsTheia.ts index 6875d085715..2a7199f331f 100644 --- a/tests/e2e/testsLibrary/LanguageServerTests.ts +++ b/tests/e2e/testsLibrary/theia/LanguageServerTestsTheia.ts @@ -10,18 +10,18 @@ import 'reflect-metadata'; import { inject, injectable } from 'inversify'; -import { CLASSES } from '../inversify.types'; -import { TimeoutConstants } from '../TimeoutConstants'; -import { Editor } from '../pageobjects/ide/Editor'; -import { Ide, LeftToolbarButton } from '../pageobjects/ide/Ide'; -import { TopMenu } from '../pageobjects/ide/TopMenu'; -import { DebugView } from '../pageobjects/ide/DebugView'; +import { CLASSES } from '../../inversify.types'; +import { TimeoutConstants } from '../../TimeoutConstants'; +import { Editor } from '../../pageobjects/ide/theia/Editor'; +import { Ide, LeftToolbarButton } from '../../pageobjects/ide/theia/Ide'; +import { TopMenu } from '../../pageobjects/ide/theia/TopMenu'; +import { DebugView } from '../../pageobjects/ide/theia/DebugView'; import { Key, error } from 'selenium-webdriver'; -import { Logger } from '../utils/Logger'; -import { BrowserTabsUtil } from '../utils/BrowserTabsUtil'; +import { Logger } from '../../utils/Logger'; +import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; @injectable() -export class LanguageServerTests { +export class LanguageServerTestsTheia { constructor( @inject(CLASSES.Editor) private readonly editor: Editor, diff --git a/tests/e2e/testsLibrary/ProjectAndFileTests.ts b/tests/e2e/testsLibrary/theia/ProjectAndFileTestsTheia.ts similarity index 87% rename from tests/e2e/testsLibrary/ProjectAndFileTests.ts rename to tests/e2e/testsLibrary/theia/ProjectAndFileTestsTheia.ts index f6b09b4a8d2..fcce502aba4 100644 --- a/tests/e2e/testsLibrary/ProjectAndFileTests.ts +++ b/tests/e2e/testsLibrary/theia/ProjectAndFileTestsTheia.ts @@ -11,16 +11,16 @@ import 'reflect-metadata'; import { inject, injectable } from 'inversify'; import { By } from 'selenium-webdriver'; -import { Ide } from '../pageobjects/ide/Ide'; -import { ProjectTree } from '../pageobjects/ide/ProjectTree'; -import { OpenEditors } from '../pageobjects/ide/OpenEditors'; -import { Editor } from '../pageobjects/ide/Editor'; -import { TimeoutConstants } from '../TimeoutConstants'; -import { DriverHelper } from '../utils/DriverHelper'; -import { CLASSES } from '../inversify.types'; +import { Ide } from '../../pageobjects/ide/theia/Ide'; +import { ProjectTree } from '../../pageobjects/ide/theia/ProjectTree'; +import { OpenEditors } from '../../pageobjects/ide/theia/OpenEditors'; +import { Editor } from '../../pageobjects/ide/theia/Editor'; +import { TimeoutConstants } from '../../TimeoutConstants'; +import { DriverHelper } from '../../utils/DriverHelper'; +import { CLASSES } from '../../inversify.types'; @injectable() -export class ProjectAndFileTests { +export class ProjectAndFileTestsTheia { constructor( @inject(CLASSES.Ide) private readonly ide: Ide, diff --git a/tests/e2e/testsLibrary/WorkspaceHandlingTests.ts b/tests/e2e/testsLibrary/theia/WorkspaceHandlingTestsTheia.ts similarity index 78% rename from tests/e2e/testsLibrary/WorkspaceHandlingTests.ts rename to tests/e2e/testsLibrary/theia/WorkspaceHandlingTestsTheia.ts index 3904dc2469d..899587cc047 100644 --- a/tests/e2e/testsLibrary/WorkspaceHandlingTests.ts +++ b/tests/e2e/testsLibrary/theia/WorkspaceHandlingTestsTheia.ts @@ -10,21 +10,21 @@ import 'reflect-metadata'; import { inject, injectable } from 'inversify'; -import { CLASSES } from '../inversify.types'; -import { Dashboard } from '../pageobjects/dashboard/Dashboard'; -import { CreateWorkspace } from '../pageobjects/dashboard/CreateWorkspace'; -import { Workspaces } from '../pageobjects/dashboard/Workspaces'; -import { BrowserTabsUtil } from '../utils/BrowserTabsUtil'; -import { Logger } from '../utils/Logger'; -import { ApiUrlResolver } from '../utils/workspace/ApiUrlResolver'; -import { TimeoutConstants } from '../TimeoutConstants'; -import { DriverHelper } from '../utils/DriverHelper'; -import { Ide } from '../pageobjects/ide/Ide'; +import { CLASSES } from '../../inversify.types'; +import { Dashboard } from '../../pageobjects/dashboard/Dashboard'; +import { CreateWorkspace } from '../../pageobjects/dashboard/CreateWorkspace'; +import { Workspaces } from '../../pageobjects/dashboard/Workspaces'; +import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; +import { Logger } from '../../utils/Logger'; +import { ApiUrlResolver } from '../../utils/workspace/ApiUrlResolver'; +import { TimeoutConstants } from '../../TimeoutConstants'; +import { DriverHelper } from '../../utils/DriverHelper'; +import { Ide } from '../../pageobjects/ide/theia/Ide'; import { By, error } from 'selenium-webdriver'; -import { TestConstants } from '../TestConstants'; +import { TestConstants } from '../../TestConstants'; @injectable() -export class WorkspaceHandlingTests { +export class WorkspaceHandlingTestsTheia { private static START_WORKSPACE_PAGE_NAME_LOCATOR: By = By.xpath(`//div[@class="ui-container"]/div[@class="pf-c-page"]//div[@class="pf-c-content"]/h1`); private static READY_TO_READ_WORKSPACE_NAME_LOCATOR: By = By.xpath(`//div[@class="ui-container"]/div[@class="pf-c-page"]//div[@class="pf-c-content"]/h1[contains(.,'Starting workspace ')]`); @@ -32,19 +32,19 @@ export class WorkspaceHandlingTests { private static parentGUID: string; public static getWorkspaceName(): string { - return WorkspaceHandlingTests.workspaceName; + return WorkspaceHandlingTestsTheia.workspaceName; } public static setWorkspaceName(workspaceName: string) { - WorkspaceHandlingTests.workspaceName = workspaceName; + WorkspaceHandlingTestsTheia.workspaceName = workspaceName; } public setWindowHandle(guid: string) { - WorkspaceHandlingTests.parentGUID = guid; + WorkspaceHandlingTestsTheia.parentGUID = guid; } public getWindowHandle(): string { - return WorkspaceHandlingTests.parentGUID; + return WorkspaceHandlingTestsTheia.parentGUID; } constructor( @@ -63,9 +63,9 @@ export class WorkspaceHandlingTests { await this.apiUrlResolver.getWorkspacesApiUrl(); await this.dashboard.clickCreateWorkspaceButton(); await this.createWorkspace.waitPage(); - WorkspaceHandlingTests.parentGUID = await this.browserTabsUtil.getCurrentWindowHandle(); + WorkspaceHandlingTestsTheia.parentGUID = await this.browserTabsUtil.getCurrentWindowHandle(); await this.createWorkspace.clickOnSample(stack); - await this.browserTabsUtil.waitAndSwitchToAnotherWindow(WorkspaceHandlingTests.parentGUID, TimeoutConstants.TS_IDE_LOAD_TIMEOUT); + await this.browserTabsUtil.waitAndSwitchToAnotherWindow(WorkspaceHandlingTestsTheia.parentGUID, TimeoutConstants.TS_IDE_LOAD_TIMEOUT); }); } @@ -84,7 +84,7 @@ export class WorkspaceHandlingTests { test('Obtain workspace name from workspace loader page', async() => { try { Logger.info('Waiting for workspace name on workspace loader page'); - await this.driverHelper.waitVisibility(WorkspaceHandlingTests.READY_TO_READ_WORKSPACE_NAME_LOCATOR, TimeoutConstants.TS_WAIT_LOADER_PRESENCE_TIMEOUT); + await this.driverHelper.waitVisibility(WorkspaceHandlingTestsTheia.READY_TO_READ_WORKSPACE_NAME_LOCATOR, TimeoutConstants.TS_WAIT_LOADER_PRESENCE_TIMEOUT); const timeout: number = TimeoutConstants.TS_IDE_LOAD_TIMEOUT; const polling: number = TestConstants.TS_SELENIUM_DEFAULT_POLLING; @@ -92,12 +92,12 @@ export class WorkspaceHandlingTests { let startingWorkspaceLineContent: string; for (let i = 0; i < attempts; i++) { - startingWorkspaceLineContent = await this.driverHelper.getDriver().findElement(WorkspaceHandlingTests.START_WORKSPACE_PAGE_NAME_LOCATOR).getAttribute('innerHTML'); + startingWorkspaceLineContent = await this.driverHelper.getDriver().findElement(WorkspaceHandlingTestsTheia.START_WORKSPACE_PAGE_NAME_LOCATOR).getAttribute('innerHTML'); // cutting away leading text - WorkspaceHandlingTests.workspaceName = startingWorkspaceLineContent.substring('Starting workspace '.length).trim(); - if (WorkspaceHandlingTests.workspaceName !== '') { - Logger.info(`Obtained workspace name from workspace loader page: ${WorkspaceHandlingTests.workspaceName}`); + WorkspaceHandlingTestsTheia.workspaceName = startingWorkspaceLineContent.substring('Starting workspace '.length).trim(); + if (WorkspaceHandlingTestsTheia.workspaceName !== '') { + Logger.info(`Obtained workspace name from workspace loader page: ${WorkspaceHandlingTestsTheia.workspaceName}`); break; } diff --git a/tests/e2e/utils/PreferencesHandler.ts b/tests/e2e/utils/theia/PreferencesHandlerTheia.ts similarity index 88% rename from tests/e2e/utils/PreferencesHandler.ts rename to tests/e2e/utils/theia/PreferencesHandlerTheia.ts index 8d55bb1dc7f..8c5274eb8d7 100644 --- a/tests/e2e/utils/PreferencesHandler.ts +++ b/tests/e2e/utils/theia/PreferencesHandlerTheia.ts @@ -9,27 +9,27 @@ **********************************************************************/ import { injectable, inject } from 'inversify'; -import { Logger } from './Logger'; -import { CLASSES } from '../inversify.types'; -import { CheApiRequestHandler } from './requestHandlers/CheApiRequestHandler'; -import { Editor } from '../pageobjects/ide/Editor'; -import { QuickOpenContainer } from '../pageobjects/ide/QuickOpenContainer'; -import { TopMenu } from '../pageobjects/ide/TopMenu'; +import { Logger } from '../Logger'; +import { CLASSES } from '../../inversify.types'; +import { CheApiRequestHandler } from '../requestHandlers/CheApiRequestHandler'; +import { Editor } from '../../pageobjects/ide/theia/Editor'; +import { QuickOpenContainer } from '../../pageobjects/ide/theia/QuickOpenContainer'; +import { TopMenu } from '../../pageobjects/ide/theia/TopMenu'; import { Key } from 'selenium-webdriver'; -export enum TerminalRendererType { +export enum TerminalRendererTypeTheia { canvas = 'canvas', dom = 'dom' } -export enum AskForConfirmationType { +export enum AskForConfirmationTypeTheia { never = 'never', ifRquired = 'ifRequired', always = 'always' } @injectable() -export class PreferencesHandler { +export class PreferencesHandlerTheia { constructor(@inject(CLASSES.CheApiRequestHandler) private readonly requestHandler: CheApiRequestHandler, @inject(CLASSES.Editor) private readonly editor: Editor, @@ -61,7 +61,7 @@ export class PreferencesHandler { /** * Works properly only if set before workspace startup. */ - public async setTerminalType(type: TerminalRendererType) { + public async setTerminalType(type: TerminalRendererTypeTheia) { Logger.debug('PreferencesHandler.setTerminalToDom'); await this.setPreference('terminal.integrated.rendererType', type); } @@ -70,7 +70,7 @@ export class PreferencesHandler { * * @param askForConfirmation possible values are "never", "ifRequired" and "always" */ - public async setConfirmExit(askForConfirmation: AskForConfirmationType) { + public async setConfirmExit(askForConfirmation: AskForConfirmationTypeTheia) { Logger.debug(`PreferencesHandler.setConfirmExit to ${askForConfirmation}`); await this.setPreference(`application.confirmExit`, askForConfirmation); } From 9a23378ec4c3d1209125096c761b325e51a7535d Mon Sep 17 00:00:00 2001 From: Tibor Dancs Date: Wed, 16 Nov 2022 14:39:02 +0100 Subject: [PATCH 4/5] Added editor switching logic, updated vscode dependencies, restored JavaSpringBoot theia test. refactored WorkspaceHandlingTests to be universal Signed-off-by: Tibor Dancs --- tests/e2e/TestConstants.ts | 6 ++ tests/e2e/driver/CheReporter.ts | 14 ++-- tests/e2e/index.ts | 2 +- tests/e2e/initDefaultValues.sh | 2 + tests/e2e/initDevfileTests.sh | 22 ++++-- tests/e2e/initPluginTest.sh | 7 +- tests/e2e/inversify.config.ts | 4 +- tests/e2e/inversify.types.ts | 2 +- tests/e2e/package-lock.json | 30 +++---- tests/e2e/package.json | 4 +- .../devfiles/code/JavaSpringBoot.spec.ts | 79 +++++++++++++++++++ .../devfiles/theia/CSlashCPlusPlus.spec.ts | 8 +- .../tests/devfiles/theia/DevfileSmoke.spec.ts | 8 +- .../tests/devfiles/theia/DotNetCore.spec.ts | 8 +- tests/e2e/tests/devfiles/theia/Go.spec.ts | 8 +- .../tests/devfiles/theia/JavaMaven.spec.ts | 8 +- .../devfiles/theia/JavaSpringBoot.spec.ts | 66 +++------------- .../tests/devfiles/theia/JavaVertx.spec.ts | 8 +- tests/e2e/tests/devfiles/theia/NodeJS.spec.ts | 8 +- .../tests/devfiles/theia/PHPSimple.spec.ts | 8 +- tests/e2e/tests/devfiles/theia/Python.spec.ts | 8 +- .../tests/devfiles/theia/PythonDjango.spec.ts | 8 +- .../e2e/tests/devfiles/theia/Quarkus.spec.ts | 8 +- tests/e2e/tests/devfiles/theia/Scala.spec.ts | 8 +- tests/e2e/tests/e2e/theia/FactoryUrl.spec.ts | 6 +- .../tests/e2e/theia/GitPublishBranch.spec.ts | 4 +- .../tests/e2e/theia/GitSelfSignCert.spec.ts | 6 +- tests/e2e/tests/e2e/theia/GitSsh.spec.ts | 6 +- .../e2e/theia/OpenshiftConnector.spec.ts | 4 +- ...ectUrlFactoryWithKeepDirectoryTest.spec.ts | 6 +- ...DirectUrlFactoryWithRootFolderTest.spec.ts | 6 +- ...ctUrlFactoryWithSpecificBranchTest.spec.ts | 6 +- .../theia/DevWorkspaceHappyPath.spec.ts | 6 +- .../e2e_happy_path/theia/HappyPath.spec.ts | 4 +- .../tests/load_test/theia/LoadTest.spec.ts | 4 +- .../theia/GitHubPullRequestPlugin.spec.ts | 8 +- .../theia/InstallPluginUsingUI.spec.ts | 8 +- .../tests/plugins/theia/JavaPlugin.spec.ts | 6 +- .../e2e/tests/plugins/theia/PhpPlugin.spec.ts | 6 +- .../tests/plugins/theia/PythonPlugin.spec.ts | 6 +- .../plugins/theia/TypescriptPlugin.spec.ts | 6 +- .../theia/VscodeKubernetesPlugin.spec.ts | 6 +- .../theia/VscodeShellcheckPlugin.spec.ts | 6 +- .../plugins/theia/VscodeValePlugin.spec.ts | 6 +- .../plugins/theia/VscodeXmlPlugin.spec.ts | 6 +- .../plugins/theia/VscodeYamlPlugin.spec.ts | 6 +- ...estsTheia.ts => WorkspaceHandlingTests.ts} | 73 ++++++----------- .../theia/CodeExecutionTestsTheia.ts | 4 +- .../theia/ProjectAndFileTestsTheia.ts | 30 ++++++- 49 files changed, 316 insertions(+), 253 deletions(-) create mode 100644 tests/e2e/tests/devfiles/code/JavaSpringBoot.spec.ts rename tests/e2e/testsLibrary/{theia/WorkspaceHandlingTestsTheia.ts => WorkspaceHandlingTests.ts} (59%) diff --git a/tests/e2e/TestConstants.ts b/tests/e2e/TestConstants.ts index 52ffd2e524e..5e8579f3cc2 100644 --- a/tests/e2e/TestConstants.ts +++ b/tests/e2e/TestConstants.ts @@ -54,6 +54,12 @@ export const TestConstants = { */ TS_SELENIUM_RESOLUTION_HEIGHT: Number(process.env.TS_SELENIUM_RESOLUTION_HEIGHT) || 1080, + /** + * Editor the tests are running against, "code" by default. + * Possible values: "code", "theia" + */ + TS_SELENIUM_EDITOR: process.env.TS_SELENIUM_EDITOR || 'code', + /** * Default ammount of tries, "5" by default. */ diff --git a/tests/e2e/driver/CheReporter.ts b/tests/e2e/driver/CheReporter.ts index bc8c842b171..6359e74bb79 100644 --- a/tests/e2e/driver/CheReporter.ts +++ b/tests/e2e/driver/CheReporter.ts @@ -18,7 +18,7 @@ import { logging } from 'selenium-webdriver'; import { DriverHelper } from '../utils/DriverHelper'; import { ScreenCatcher } from '../utils/ScreenCatcher'; import { ITestWorkspaceUtil } from '../utils/workspace/ITestWorkspaceUtil'; -// import { PreferencesHandler } from '../utils/PreferencesHandler'; +import { AskForConfirmationTypeTheia, PreferencesHandlerTheia, TerminalRendererTypeTheia } from '../utils/theia/PreferencesHandlerTheia'; import { CheApiRequestHandler } from '../utils/requestHandlers/CheApiRequestHandler'; import { TimeoutConstants } from '../TimeoutConstants'; import { Logger } from '../utils/Logger'; @@ -34,7 +34,6 @@ const sanitizer: Sanitizer = e2eContainer.get(CLASSES.Sanitizer); let methodIndex: number = 0; let deleteScreencast: boolean = true; let testWorkspaceUtil: ITestWorkspaceUtil = e2eContainer.get(TYPES.WorkspaceUtil); -// let preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); class CheReporter extends mocha.reporters.Spec { @@ -88,10 +87,15 @@ class CheReporter extends mocha.reporters.Spec { if (TestConstants.TS_SELENIUM_RESPONSE_INTERCEPTOR) { CheApiRequestHandler.enableResponseInterceptor(); } - // await preferencesHandler.setConfirmExit(AskForConfirmationType.never); - // await preferencesHandler.setTerminalType(TerminalRendererType.dom); - monacoPageObjects.initPageObjects('1.71.0', '1.37.0', vscodeExtensionTesterLocators.getLocatorsPath(), driver.get(), 'google-chrome'); + if (TestConstants.TS_SELENIUM_EDITOR === 'theia') { + let preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); + await preferencesHandler.setConfirmExit(AskForConfirmationTypeTheia.never); + await preferencesHandler.setTerminalType(TerminalRendererTypeTheia.dom); + } else if (TestConstants.TS_SELENIUM_EDITOR === 'code') { + monacoPageObjects.initPageObjects('1.71.0', '1.37.0', vscodeExtensionTesterLocators.getLocatorsPath(), driver.get(), 'google-chrome'); + } + }); runner.on('test', async function (test: mocha.Test) { diff --git a/tests/e2e/index.ts b/tests/e2e/index.ts index 71b5624b445..d7e74e082bf 100644 --- a/tests/e2e/index.ts +++ b/tests/e2e/index.ts @@ -65,4 +65,4 @@ export * from './pageobjects/third-parties/GitOauthAppsSettings'; export * from './testsLibrary/theia/CodeExecutionTestsTheia'; export * from './testsLibrary/theia/LanguageServerTestsTheia'; export * from './testsLibrary/theia/ProjectAndFileTestsTheia'; -export * from './testsLibrary/theia/WorkspaceHandlingTestsTheia'; +export * from './testsLibrary/WorkspaceHandlingTests'; diff --git a/tests/e2e/initDefaultValues.sh b/tests/e2e/initDefaultValues.sh index 27adf4242ae..322fde1d7d4 100755 --- a/tests/e2e/initDefaultValues.sh +++ b/tests/e2e/initDefaultValues.sh @@ -8,6 +8,7 @@ export TS_SELENIUM_PASSWORD=${TS_SELENIUM_PASSWORD:-"admin"} export TS_SELENIUM_MULTIUSER=${TS_SELENIUM_MULTIUSER:-"true"} export TS_SELENIUM_W3C_CHROME_OPTION=${TS_SELENIUM_W3C_CHROME_OPTION:-"true"} export NODE_TLS_REJECT_UNAUTHORIZED=${NODE_TLS_REJECT_UNAUTHORIZED:-0} +export TS_SELENIUM_EDITOR=${TS_SELENIUM_EDITOR:-"code"} if [ "$E2E_OCP_CLUSTER_VERSION" = "3.x" ] ; then unset TS_OCP_LOGIN_PAGE_PROVIDER_TITLE @@ -25,3 +26,4 @@ echo "TS_SELENIUM_PASSWORD = ${TS_SELENIUM_PASSWORD}" echo "TS_SELENIUM_MULTIUSER = ${TS_SELENIUM_MULTIUSER}" echo "TS_SELENIUM_W3C_CHROME_OPTION = ${TS_SELENIUM_W3C_CHROME_OPTION}" echo "NODE_TLS_REJECT_UNAUTHORIZED = ${NODE_TLS_REJECT_UNAUTHORIZED}" +echo "TS_SELENIUM_EDITOR = ${TS_SELENIUM_EDITOR}" diff --git a/tests/e2e/initDevfileTests.sh b/tests/e2e/initDevfileTests.sh index 4bae9cc7712..79ee18c035a 100755 --- a/tests/e2e/initDevfileTests.sh +++ b/tests/e2e/initDevfileTests.sh @@ -9,8 +9,11 @@ launchAllUserstories(){ echo "Launching all userstories"; echo "" - # TODO: Handle editor switching - npm run lint && npm run tsc && mocha --config mocha-all-devfiles-theia.json ; + if [ "${TS_SELENIUM_EDITOR}" == "theia" ]; then + npm run lint && npm run tsc && mocha --config mocha-all-devfiles-theia.json ; + elif [ "${TS_SELENIUM_EDITOR}" == "code" ]; then + npm run lint && npm run tsc && mocha --config mocha-all-devfiles-code.json ; + fi } launchSingleUserstory(){ @@ -18,12 +21,21 @@ launchSingleUserstory(){ echo "Launching the \"${USERSTORY}\" userstory"; echo "" - # TODO: Handle editor switching - tsc && mocha --config mocha-single-devfile.json --spec dist/tests/login/Login.spec.js --spec dist/tests/devfiles/theia/${USERSTORY}.spec.js ; + if [ "${TS_SELENIUM_EDITOR}" == "theia" ]; then + tsc && mocha --config mocha-single-devfile.json --spec dist/tests/login/Login.spec.js --spec dist/tests/devfiles/theia/${USERSTORY}.spec.js ; + elif [ "${TS_SELENIUM_EDITOR}" == "code" ]; then + tsc && mocha --config mocha-single-devfile.json --spec dist/tests/login/Login.spec.js --spec dist/tests/devfiles/code/${USERSTORY}.spec.js ; + fi + } checkUserstoryName(){ - local checkedName="$(ls tests/devfiles | grep ${USERSTORY}.spec.ts)"; + local checkedName; + if [ "${TS_SELENIUM_EDITOR}" == "theia" ]; then + checkedName="$(ls tests/devfiles/theia | grep ${USERSTORY}.spec.ts)"; + elif [ "${TS_SELENIUM_EDITOR}" == "code" ]; then + checkedName="$(ls tests/devfiles/code | grep ${USERSTORY}.spec.ts)"; + fi if [ -z "$checkedName" ]; then echo "" diff --git a/tests/e2e/initPluginTest.sh b/tests/e2e/initPluginTest.sh index faa66b85de4..26b20554a85 100755 --- a/tests/e2e/initPluginTest.sh +++ b/tests/e2e/initPluginTest.sh @@ -6,5 +6,8 @@ echo "" echo "Launching the \"${USERSTORY}\" userstory"; echo "" -# TODO: Handle editor switching -npm run init-mocha-opts -- --spec dist/tests/plugins/theia/${USERSTORY}.spec.js +if [ "${TS_SELENIUM_EDITOR}" == "theia" ]; then + npm run init-mocha-opts -- --spec dist/tests/plugins/theia/${USERSTORY}.spec.js +elif [ "${TS_SELENIUM_EDITOR}" == "code" ]; then + npm run init-mocha-opts -- --spec dist/tests/plugins/code/${USERSTORY}.spec.js +fi diff --git a/tests/e2e/inversify.config.ts b/tests/e2e/inversify.config.ts index 38c7ea2bf6a..f2e4865abe9 100644 --- a/tests/e2e/inversify.config.ts +++ b/tests/e2e/inversify.config.ts @@ -61,7 +61,7 @@ import { PluginsView } from './pageobjects/ide/theia/plugins/PluginsView'; import { LanguageServerTestsTheia } from './testsLibrary/theia/LanguageServerTestsTheia'; import { CodeExecutionTestsTheia } from './testsLibrary/theia/CodeExecutionTestsTheia'; import { ProjectAndFileTestsTheia } from './testsLibrary/theia/ProjectAndFileTestsTheia'; -import { WorkspaceHandlingTestsTheia } from './testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from './testsLibrary/WorkspaceHandlingTests'; import { GitHubPullRequestPlugin } from './pageobjects/ide/theia/plugins/GitHubPullRequestPlugin'; import { GitLoginPage } from './pageobjects/third-parties/GitLoginPage'; import { GitOauthAppsSettings } from './pageobjects/third-parties/GitOauthAppsSettings'; @@ -125,7 +125,7 @@ e2eContainer.bind(CLASSES.PluginsView).to(PluginsView); e2eContainer.bind(CLASSES.LanguageServerTestsTheia).to(LanguageServerTestsTheia); e2eContainer.bind(CLASSES.CodeExecutionTestsTheia).to(CodeExecutionTestsTheia); e2eContainer.bind(CLASSES.ProjectAndFileTestsTheia).to(ProjectAndFileTestsTheia); -e2eContainer.bind(CLASSES.WorkspaceHandlingTestsTheia).to(WorkspaceHandlingTestsTheia); +e2eContainer.bind(CLASSES.WorkspaceHandlingTests).to(WorkspaceHandlingTests); e2eContainer.bind(CLASSES.WorkspaceNameHandler).to(WorkspaceNameHandler); e2eContainer.bind(CLASSES.GitHubPullRequestPlugin).to(GitHubPullRequestPlugin); e2eContainer.bind(CLASSES.GitLoginPage).to(GitLoginPage); diff --git a/tests/e2e/inversify.types.ts b/tests/e2e/inversify.types.ts index bb12b994d0b..f4393f5d361 100644 --- a/tests/e2e/inversify.types.ts +++ b/tests/e2e/inversify.types.ts @@ -59,7 +59,7 @@ const CLASSES = { LanguageServerTestsTheia: 'LanguageServerTestsTheia', CodeExecutionTestsTheia: 'CodeExecutionTestsTheia', ProjectAndFileTestsTheia: 'ProjectAndFileTestsTheia', - WorkspaceHandlingTestsTheia: 'WorkspaceHandlingTestsTheia', + WorkspaceHandlingTests: 'WorkspaceHandlingTests', WorkspaceNameHandler: 'WorkspaceNameHandler', GitHubPullRequestPlugin: 'GitHubPullRequestPlugin', GitLoginPage: 'GitLoginPage', diff --git a/tests/e2e/package-lock.json b/tests/e2e/package-lock.json index a89efad6063..4f2fa2ca4eb 100644 --- a/tests/e2e/package-lock.json +++ b/tests/e2e/package-lock.json @@ -23,14 +23,14 @@ "chai": "4.2.0", "chromedriver": "^103.0.0", "mocha": "^9.1.3", - "monaco-page-objects": "2.0.1", + "monaco-page-objects": "3.1.0", "rimraf": "2.6.2", "selenium-webdriver": "4.4.0", "ts-node": "8.0.3", "tslint": "5.10.0", "typed-rest-client": "1.8.5", "typescript": "3.9.9", - "vscode-extension-tester-locators": "2.0.0" + "vscode-extension-tester-locators": "3.1.0" } }, "node_modules/@eclipse-che/api": { @@ -1793,9 +1793,9 @@ "dev": true }, "node_modules/monaco-page-objects": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/monaco-page-objects/-/monaco-page-objects-2.0.1.tgz", - "integrity": "sha512-OL2vzqA0YkKozdEEwj3fBYyJsv2jWZrG8nlKfho5epe//FQ7sY7QzaJ8OtfBD5mYGT7mwV1O649A/E33D5H6kA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/monaco-page-objects/-/monaco-page-objects-3.1.0.tgz", + "integrity": "sha512-B0ylDy9UcCeOkYHoWziimJDcBzgWPJHBrjYzKtBMjEw++Oo3eFJ00RN1XDjgzW6o7+wlG25M/atJ9010QfLoFw==", "dev": true, "dependencies": { "clipboardy": "^2.3.0", @@ -2595,12 +2595,12 @@ "dev": true }, "node_modules/vscode-extension-tester-locators": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/vscode-extension-tester-locators/-/vscode-extension-tester-locators-2.0.0.tgz", - "integrity": "sha512-ljmevi7R1K5uCiMpstKydh/sCA9TEiohxLmzX30ZZU5qE/ZNWz/5oLrxTdqN3EcSVW9ZXhExvrQFvHoYZxy9Ng==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vscode-extension-tester-locators/-/vscode-extension-tester-locators-3.1.0.tgz", + "integrity": "sha512-Q4gfJHnA1Kf6W0UOSE16jvPB+hk0aQ1r9b9bjM311r30hsdHkzBpAYw58YS8ZfzB7AgA4Jum/SM9q4WM2fwedg==", "dev": true, "peerDependencies": { - "monaco-page-objects": "^2.0.0", + "monaco-page-objects": "^3.1.0", "selenium-webdriver": "^4.2.0" } }, @@ -4128,9 +4128,9 @@ } }, "monaco-page-objects": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/monaco-page-objects/-/monaco-page-objects-2.0.1.tgz", - "integrity": "sha512-OL2vzqA0YkKozdEEwj3fBYyJsv2jWZrG8nlKfho5epe//FQ7sY7QzaJ8OtfBD5mYGT7mwV1O649A/E33D5H6kA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/monaco-page-objects/-/monaco-page-objects-3.1.0.tgz", + "integrity": "sha512-B0ylDy9UcCeOkYHoWziimJDcBzgWPJHBrjYzKtBMjEw++Oo3eFJ00RN1XDjgzW6o7+wlG25M/atJ9010QfLoFw==", "dev": true, "requires": { "clipboardy": "^2.3.0", @@ -4718,9 +4718,9 @@ "dev": true }, "vscode-extension-tester-locators": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/vscode-extension-tester-locators/-/vscode-extension-tester-locators-2.0.0.tgz", - "integrity": "sha512-ljmevi7R1K5uCiMpstKydh/sCA9TEiohxLmzX30ZZU5qE/ZNWz/5oLrxTdqN3EcSVW9ZXhExvrQFvHoYZxy9Ng==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vscode-extension-tester-locators/-/vscode-extension-tester-locators-3.1.0.tgz", + "integrity": "sha512-Q4gfJHnA1Kf6W0UOSE16jvPB+hk0aQ1r9b9bjM311r30hsdHkzBpAYw58YS8ZfzB7AgA4Jum/SM9q4WM2fwedg==", "dev": true, "requires": {} }, diff --git a/tests/e2e/package.json b/tests/e2e/package.json index f46f370f96f..ecfa61453d9 100644 --- a/tests/e2e/package.json +++ b/tests/e2e/package.json @@ -57,8 +57,8 @@ "tslint": "5.10.0", "typed-rest-client": "1.8.5", "typescript": "3.9.9", - "monaco-page-objects": "2.0.1", - "vscode-extension-tester-locators": "2.0.0" + "monaco-page-objects": "3.1.0", + "vscode-extension-tester-locators": "3.1.0" }, "dependencies": { "@eclipse-che/api": "7.56.0", diff --git a/tests/e2e/tests/devfiles/code/JavaSpringBoot.spec.ts b/tests/e2e/tests/devfiles/code/JavaSpringBoot.spec.ts new file mode 100644 index 00000000000..e63b8b14b9f --- /dev/null +++ b/tests/e2e/tests/devfiles/code/JavaSpringBoot.spec.ts @@ -0,0 +1,79 @@ +/********************************************************************* + * Copyright (c) 2020 Red Hat, Inc. + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + **********************************************************************/ +import 'reflect-metadata'; +import { CLASSES } from '../../../inversify.types'; +import { e2eContainer } from '../../../inversify.config'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; +import CheReporter from '../../../driver/CheReporter'; +import { CreateWorkspace } from '../../../pageobjects/dashboard/CreateWorkspace'; +import { Logger } from '../../../utils/Logger'; +import { ApiUrlResolver } from '../../../utils/workspace/ApiUrlResolver'; +import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; +import { TimeoutConstants } from '../../../TimeoutConstants'; +import { Dashboard } from '../../../pageobjects/dashboard/Dashboard'; +import { DriverHelper } from '../../../utils/DriverHelper'; +import { By, until } from 'selenium-webdriver'; +import { Workbench } from 'monaco-page-objects'; + +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); +const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard); +const createWorkspace: CreateWorkspace = e2eContainer.get(CLASSES.CreateWorkspace); +const apiUrlResolver: ApiUrlResolver = e2eContainer.get(CLASSES.ApiUrlResolver); +const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); +const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper); + +const stack: string = 'Java Spring Boot'; + +suite(`${stack} test`, async () => { + suite(`Create ${stack} workspace`, async () => { + // workspaceHandlingTests.createAndOpenWorkspace(stack); + test('Start Maven workspace using factory URL and vscode editor', async() => { + await dashboard.waitPage(); + Logger.debug(`Fetching user kubernetes namespace, storing auth token by getting workspaces API URL.`); + await apiUrlResolver.getWorkspacesApiUrl(); + await dashboard.clickCreateWorkspaceButton(); + await createWorkspace.waitPage(); + workspaceHandlingTests.setWindowHandle(await browserTabsUtil.getCurrentWindowHandle()); + await createWorkspace.startWorkspaceUsingFactory(`https://github.com/devspaces-samples/rest-http-example/tree/devspaces-3-rhel-8?che-editor=che-incubator/che-code/insiders&storageType=persistent`); + await browserTabsUtil.waitAndSwitchToAnotherWindow(workspaceHandlingTests.getWindowHandle(), TimeoutConstants.TS_IDE_LOAD_TIMEOUT); + }); + workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); + test('Register running workspace', async () => { + CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + }); + test('Wait workspace readiness', async() => { + try { + await driverHelper.getDriver().wait(until.elementLocated(By.className('monaco-workbench'))); + } catch (err) { + if ((err as Error).name === 'WebDriverError') { + await new Promise(res => setTimeout(res, 3000)); + } else { + throw err; + } + } + let workbench = new Workbench(); + let activityBar = workbench.getActivityBar(); + let activityBarControls = await activityBar.getViewControls(); + // let sidebarContent = activityBar.getViewControl(); + // let sidebarViewSections = await sidebarContent.getSections(); + Logger.debug(`Editor sections:`); + activityBarControls.forEach(async control => { + Logger.debug(`${await control.getTitle()}`); + }); + }); + // projectAndFileTests.waitWorkspaceReadiness(workspaceSampleName, workspaceRootFolderName, false); + }); + + suite('Stopping and deleting the workspace', async () => { + test(`Stop and remowe workspace`, async () => { + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); + }); + }); +}); diff --git a/tests/e2e/tests/devfiles/theia/CSlashCPlusPlus.spec.ts b/tests/e2e/tests/devfiles/theia/CSlashCPlusPlus.spec.ts index 82fcb995e7b..89aae78fe4a 100644 --- a/tests/e2e/tests/devfiles/theia/CSlashCPlusPlus.spec.ts +++ b/tests/e2e/tests/devfiles/theia/CSlashCPlusPlus.spec.ts @@ -14,10 +14,10 @@ import { Editor } from '../../../pageobjects/ide/theia/Editor'; import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageServerTestsTheia'; import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import CheReporter from '../../../driver/CheReporter'; -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); @@ -35,7 +35,7 @@ suite(`${stack} test`, async () => { workspaceHandlingTests.createAndOpenWorkspace(stack); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { - CheReporter.registerRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); projectAndFileTests.waitWorkspaceReadinessNoSubfolder(workspaceSampleName, false); }); @@ -60,7 +60,7 @@ suite(`${stack} test`, async () => { suite('Stopping and deleting the workspace', async () => { test(`Stop and remowe workspace`, async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); }); diff --git a/tests/e2e/tests/devfiles/theia/DevfileSmoke.spec.ts b/tests/e2e/tests/devfiles/theia/DevfileSmoke.spec.ts index 153acac7ec1..a28ffda34f3 100644 --- a/tests/e2e/tests/devfiles/theia/DevfileSmoke.spec.ts +++ b/tests/e2e/tests/devfiles/theia/DevfileSmoke.spec.ts @@ -12,12 +12,12 @@ import { CLASSES } from '../../../inversify.types'; import { e2eContainer } from '../../../inversify.config'; import { PreferencesHandlerTheia } from '../../../utils/theia/PreferencesHandlerTheia'; import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import { NavigationBar } from '../../../pageobjects/ide/theia/NavigationBar'; import { Dashboard } from '../../../pageobjects/dashboard/Dashboard'; import CheReporter from '../../../driver/CheReporter'; -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const navigationBar: NavigationBar = e2eContainer.get(CLASSES.NavigationBar); @@ -32,7 +32,7 @@ suite(`${stack} test`, async () => { workspaceHandlingTests.createAndOpenWorkspace(stack); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { - CheReporter.registerRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); projectAndFileTests.waitWorkspaceReadiness(workspaceSampleName, workspaceRootFolderName, false); @@ -44,7 +44,7 @@ suite(`${stack} test`, async () => { suite ('Stopping and deleting the workspace', async () => { test(`Stop and remowe workspace`, async () => { await navigationBar.openNavigationBar(); - await dashboard.stopAndRemoveWorkspaceByUI(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await dashboard.stopAndRemoveWorkspaceByUI(WorkspaceHandlingTests.getWorkspaceName()); }); }); }); diff --git a/tests/e2e/tests/devfiles/theia/DotNetCore.spec.ts b/tests/e2e/tests/devfiles/theia/DotNetCore.spec.ts index f71df9d5173..5e7373fc5e7 100644 --- a/tests/e2e/tests/devfiles/theia/DotNetCore.spec.ts +++ b/tests/e2e/tests/devfiles/theia/DotNetCore.spec.ts @@ -14,10 +14,10 @@ import { Editor } from '../../../pageobjects/ide/theia/Editor'; import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageServerTestsTheia'; import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import CheReporter from '../../../driver/CheReporter'; -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); @@ -38,7 +38,7 @@ suite(`Test ${stack}`, async () => { workspaceHandlingTests.createAndOpenWorkspace(stack); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { - CheReporter.registerRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); projectAndFileTests.waitWorkspaceReadinessNoSubfolder(workspaceSampleName, false); }); @@ -72,7 +72,7 @@ suite(`Test ${stack}`, async () => { suite ('Stopping and deleting the workspace', async () => { test(`Stop and remowe workspace`, async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); }); }); diff --git a/tests/e2e/tests/devfiles/theia/Go.spec.ts b/tests/e2e/tests/devfiles/theia/Go.spec.ts index 9bcf1dc6cf0..42b2b8b526e 100644 --- a/tests/e2e/tests/devfiles/theia/Go.spec.ts +++ b/tests/e2e/tests/devfiles/theia/Go.spec.ts @@ -15,10 +15,10 @@ import { PreferencesHandlerTheia } from '../../../utils/theia/PreferencesHandler import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageServerTestsTheia'; import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import CheReporter from '../../../driver/CheReporter'; -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); @@ -41,7 +41,7 @@ suite(`${workspaceStack} test`, async () => { workspaceHandlingTests.createAndOpenWorkspace(workspaceStack); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { - CheReporter.registerRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); projectAndFileTests.waitWorkspaceReadiness(workspaceSampleName, workspaceSubfolderName, false); test('Workaround for issue #16113', async () => { @@ -74,7 +74,7 @@ suite(`${workspaceStack} test`, async () => { suite('Stop and remove workspace', async() => { test(`Stop and remove workspace`, async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); }); diff --git a/tests/e2e/tests/devfiles/theia/JavaMaven.spec.ts b/tests/e2e/tests/devfiles/theia/JavaMaven.spec.ts index 56e0b45f0f1..564b4174f22 100644 --- a/tests/e2e/tests/devfiles/theia/JavaMaven.spec.ts +++ b/tests/e2e/tests/devfiles/theia/JavaMaven.spec.ts @@ -13,10 +13,10 @@ import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageSe import { e2eContainer } from '../../../inversify.config'; import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import CheReporter from '../../../driver/CheReporter'; -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); @@ -34,7 +34,7 @@ suite(`${stack} test`, async () => { workspaceHandlingTests.createAndOpenWorkspace(stack); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { - CheReporter.registerRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); projectAndFileTests.waitWorkspaceReadiness(workspaceSampleName, workspaceRootFolderName, false); }); @@ -58,7 +58,7 @@ suite(`${stack} test`, async () => { suite('Stopping and deleting the workspace', async () => { test(`Stop and remowe workspace`, async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); }); }); diff --git a/tests/e2e/tests/devfiles/theia/JavaSpringBoot.spec.ts b/tests/e2e/tests/devfiles/theia/JavaSpringBoot.spec.ts index a7bb1f64d77..91c3c9b2a5f 100644 --- a/tests/e2e/tests/devfiles/theia/JavaSpringBoot.spec.ts +++ b/tests/e2e/tests/devfiles/theia/JavaSpringBoot.spec.ts @@ -13,30 +13,16 @@ import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageSe import { e2eContainer } from '../../../inversify.config'; import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import CheReporter from '../../../driver/CheReporter'; -import { CreateWorkspace } from '../../../pageobjects/dashboard/CreateWorkspace'; -import { Logger } from '../../../utils/Logger'; -import { ApiUrlResolver } from '../../../utils/workspace/ApiUrlResolver'; -import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; -import { TimeoutConstants } from '../../../TimeoutConstants'; -import { Dashboard } from '../../../pageobjects/dashboard/Dashboard'; -import { DriverHelper } from '../../../utils/DriverHelper'; -import { By, until } from 'selenium-webdriver'; -import { Workbench } from 'monaco-page-objects'; -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); -const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard); -const createWorkspace: CreateWorkspace = e2eContainer.get(CLASSES.CreateWorkspace); -const apiUrlResolver: ApiUrlResolver = e2eContainer.get(CLASSES.ApiUrlResolver); -const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); -const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper); const stack: string = 'Java Spring Boot'; -const workspaceSampleName: string = 'java-spring-petclinic'; +const workspaceSampleName: string = 'java-web-spring'; const workspaceRootFolderName: string = 'src'; const fileFolderPath: string = `${workspaceSampleName}/${workspaceRootFolderName}/main/java/org/springframework/samples/petclinic`; const tabTitle: string = 'PetClinicApplication.java'; @@ -47,60 +33,30 @@ const runTaskExpectedDialogue: string = 'Process 8080-tcp is now listening on po suite(`${stack} test`, async () => { suite(`Create ${stack} workspace`, async () => { - // workspaceHandlingTests.createAndOpenWorkspace(stack); - test('Start Maven workspace using factory URL and vscode editor', async() => { - await dashboard.waitPage(); - Logger.debug(`Fetching user kubernetes namespace, storing auth token by getting workspaces API URL.`); - await apiUrlResolver.getWorkspacesApiUrl(); - await dashboard.clickCreateWorkspaceButton(); - await createWorkspace.waitPage(); - workspaceHandlingTests.setWindowHandle(await browserTabsUtil.getCurrentWindowHandle()); - await createWorkspace.startWorkspaceUsingFactory(`https://github.com/che-samples/java-spring-petclinic/tree/devfilev2?che-editor=che-incubator/che-code/insiders&storageType=persistent`); - await browserTabsUtil.waitAndSwitchToAnotherWindow(workspaceHandlingTests.getWindowHandle(), TimeoutConstants.TS_IDE_LOAD_TIMEOUT); - }); + workspaceHandlingTests.createAndOpenWorkspace(stack); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { - CheReporter.registerRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); - }); - test('Wait workspace readiness', async() => { - try { - await driverHelper.getDriver().wait(until.elementLocated(By.className('monaco-workbench'))); - } catch (err) { - if ((err as Error).name === 'WebDriverError') { - await new Promise(res => setTimeout(res, 3000)); - } else { - throw err; - } - } - let workbench = new Workbench(); - let activityBar = workbench.getActivityBar(); - let activityBarControls = await activityBar.getViewControls(); - // let sidebarContent = activityBar.getViewControl(); - // let sidebarViewSections = await sidebarContent.getSections(); - Logger.debug(`Editor sections:`); - activityBarControls.forEach(async control => { - Logger.debug(`${await control.getTitle()}`); - }); + CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); - // projectAndFileTests.waitWorkspaceReadiness(workspaceSampleName, workspaceRootFolderName, false); + projectAndFileTests.waitWorkspaceReadiness(workspaceSampleName, workspaceRootFolderName, false); }); - suite.skip('Test opening file', async () => { + suite('Test opening file', async () => { // opening file that soon should give time for LS to initialize projectAndFileTests.openFile(fileFolderPath, tabTitle); }); - suite.skip('Validation of workspace build', async () => { + suite('Validation of workspace build', async () => { codeExecutionTests.runTask(buildTaskName, 720_000); codeExecutionTests.closeTerminal(buildTaskName); }); - suite.skip('Validation of workspace execution', async () => { + suite('Validation of workspace execution', async () => { codeExecutionTests.runTaskWithNotification(runTaskName, runTaskExpectedDialogue, 120_000); codeExecutionTests.closeTerminal(runTaskName); }); - suite.skip('Language server validation', async () => { + suite('Language server validation', async () => { commonLanguageServerTests.autocomplete(tabTitle, 32, 56, 'args : String[]'); commonLanguageServerTests.errorHighlighting(tabTitle, 'error_text', 30); commonLanguageServerTests.goToImplementations(tabTitle, 32, 23, codeNavigationClassName); @@ -109,7 +65,7 @@ suite(`${stack} test`, async () => { suite('Stopping and deleting the workspace', async () => { test(`Stop and remowe workspace`, async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); }); }); diff --git a/tests/e2e/tests/devfiles/theia/JavaVertx.spec.ts b/tests/e2e/tests/devfiles/theia/JavaVertx.spec.ts index e650a621f2f..6498f0524ea 100644 --- a/tests/e2e/tests/devfiles/theia/JavaVertx.spec.ts +++ b/tests/e2e/tests/devfiles/theia/JavaVertx.spec.ts @@ -13,10 +13,10 @@ import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageSe import { e2eContainer } from '../../../inversify.config'; import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import CheReporter from '../../../driver/CheReporter'; -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); @@ -34,7 +34,7 @@ suite(`${stack} test`, async () => { workspaceHandlingTests.createAndOpenWorkspace(stack); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { - CheReporter.registerRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); projectAndFileTests.waitWorkspaceReadiness(workspaceSampleName, workspaceRootFolderName, false); }); @@ -58,7 +58,7 @@ suite(`${stack} test`, async () => { suite ('Stopping and deleting the workspace', async () => { test(`Stop and remowe workspace`, async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); }); diff --git a/tests/e2e/tests/devfiles/theia/NodeJS.spec.ts b/tests/e2e/tests/devfiles/theia/NodeJS.spec.ts index c3a7011acc3..a3cd62d6248 100644 --- a/tests/e2e/tests/devfiles/theia/NodeJS.spec.ts +++ b/tests/e2e/tests/devfiles/theia/NodeJS.spec.ts @@ -13,10 +13,10 @@ import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageSe import { e2eContainer } from '../../../inversify.config'; import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import CheReporter from '../../../driver/CheReporter'; -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); @@ -37,7 +37,7 @@ suite(`${workspaceStack} test`, async () => { workspaceHandlingTests.createAndOpenWorkspace(workspaceStack); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { - CheReporter.registerRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); projectAndFileTests.waitWorkspaceReadiness(workspaceSampleName, workspaceRootFolderName, false); }); @@ -65,7 +65,7 @@ suite(`${workspaceStack} test`, async () => { suite('Stop and remove workspace', async() => { test(`Stop and remowe workspace`, async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); }); }); diff --git a/tests/e2e/tests/devfiles/theia/PHPSimple.spec.ts b/tests/e2e/tests/devfiles/theia/PHPSimple.spec.ts index fb449291438..d61ce623ad9 100644 --- a/tests/e2e/tests/devfiles/theia/PHPSimple.spec.ts +++ b/tests/e2e/tests/devfiles/theia/PHPSimple.spec.ts @@ -14,10 +14,10 @@ import { Editor } from '../../../pageobjects/ide/theia/Editor'; import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageServerTestsTheia'; import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import CheReporter from '../../../driver/CheReporter'; -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); @@ -36,7 +36,7 @@ suite(`${stack} test`, async () => { workspaceHandlingTests.createAndOpenWorkspace(stack); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { - CheReporter.registerRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); projectAndFileTests.waitWorkspaceReadinessNoSubfolder(workspaceSampleName, false); }); @@ -64,7 +64,7 @@ suite(`${stack} test`, async () => { suite ('Stopping and deleting the workspace', async () => { test(`Stop and remowe workspace`, async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); }); diff --git a/tests/e2e/tests/devfiles/theia/Python.spec.ts b/tests/e2e/tests/devfiles/theia/Python.spec.ts index 1a2d1a2eedb..5f4ad67072b 100644 --- a/tests/e2e/tests/devfiles/theia/Python.spec.ts +++ b/tests/e2e/tests/devfiles/theia/Python.spec.ts @@ -13,10 +13,10 @@ import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageSe import { e2eContainer } from '../../../inversify.config'; import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import CheReporter from '../../../driver/CheReporter'; -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); @@ -34,7 +34,7 @@ suite(`${workspaceStack} test`, async () => { workspaceHandlingTests.createAndOpenWorkspace(workspaceStack); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { - CheReporter.registerRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); projectAndFileTests.waitWorkspaceReadinessNoSubfolder(workspaceSampleName, false); }); @@ -58,7 +58,7 @@ suite(`${workspaceStack} test`, async () => { suite ('Stopping and deleting the workspace', async () => { test(`Stop and remowe workspace`, async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); }); }); diff --git a/tests/e2e/tests/devfiles/theia/PythonDjango.spec.ts b/tests/e2e/tests/devfiles/theia/PythonDjango.spec.ts index ecdcae112e4..c341473c110 100644 --- a/tests/e2e/tests/devfiles/theia/PythonDjango.spec.ts +++ b/tests/e2e/tests/devfiles/theia/PythonDjango.spec.ts @@ -12,10 +12,10 @@ import 'reflect-metadata'; import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; import { e2eContainer } from '../../../inversify.config'; import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import CheReporter from '../../../driver/CheReporter'; -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); @@ -36,7 +36,7 @@ suite(`${workspaceStack} test`, async () => { workspaceHandlingTests.createAndOpenWorkspace(workspaceStack); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { - CheReporter.registerRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); projectAndFileTests.waitWorkspaceReadiness(workspaceSampleName, workspaceRootFolderName, false); }); @@ -61,7 +61,7 @@ suite(`${workspaceStack} test`, async () => { suite ('Stopping and deleting the workspace', async () => { test(`Stop and remowe workspace`, async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); }); }); diff --git a/tests/e2e/tests/devfiles/theia/Quarkus.spec.ts b/tests/e2e/tests/devfiles/theia/Quarkus.spec.ts index 1d67229dc1a..6f86c116253 100644 --- a/tests/e2e/tests/devfiles/theia/Quarkus.spec.ts +++ b/tests/e2e/tests/devfiles/theia/Quarkus.spec.ts @@ -13,10 +13,10 @@ import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageSe import { e2eContainer } from '../../../inversify.config'; import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import CheReporter from '../../../driver/CheReporter'; -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); @@ -36,7 +36,7 @@ suite(`${workspaceStack} test`, async () => { workspaceHandlingTests.createAndOpenWorkspace(workspaceStack); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { - CheReporter.registerRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); projectAndFileTests.waitWorkspaceReadiness(workspaceSampleName, workspaceRootFolderName, false); }); @@ -70,7 +70,7 @@ suite(`${workspaceStack} test`, async () => { suite('Stop and remove workspace', async() => { test(`Stop and remowe workspace`, async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); }); }); diff --git a/tests/e2e/tests/devfiles/theia/Scala.spec.ts b/tests/e2e/tests/devfiles/theia/Scala.spec.ts index c3e002bbe69..eddc64bd058 100644 --- a/tests/e2e/tests/devfiles/theia/Scala.spec.ts +++ b/tests/e2e/tests/devfiles/theia/Scala.spec.ts @@ -13,10 +13,10 @@ import { LanguageServerTestsTheia } from '../../../testsLibrary/theia/LanguageSe import { e2eContainer } from '../../../inversify.config'; import { CodeExecutionTestsTheia } from '../../../testsLibrary/theia/CodeExecutionTestsTheia'; import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import CheReporter from '../../../driver/CheReporter'; -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const commonLanguageServerTests: LanguageServerTestsTheia = e2eContainer.get(CLASSES.LanguageServerTestsTheia); const codeExecutionTests: CodeExecutionTestsTheia = e2eContainer.get(CLASSES.CodeExecutionTestsTheia); @@ -36,7 +36,7 @@ suite.skip(`${stack} test`, async () => { workspaceHandlingTests.createAndOpenWorkspace(stack); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Register running workspace', async () => { - CheReporter.registerRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + CheReporter.registerRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); projectAndFileTests.waitWorkspaceReadiness(workspaceSampleName, workspaceRootFolderName, false); }); @@ -64,7 +64,7 @@ suite.skip(`${stack} test`, async () => { suite ('Stopping and deleting the workspace', async () => { test(`Stop and remowe workspace`, async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); }); }); diff --git a/tests/e2e/tests/e2e/theia/FactoryUrl.spec.ts b/tests/e2e/tests/e2e/theia/FactoryUrl.spec.ts index f5fc98152ca..63ff583d2d2 100644 --- a/tests/e2e/tests/e2e/theia/FactoryUrl.spec.ts +++ b/tests/e2e/tests/e2e/theia/FactoryUrl.spec.ts @@ -14,12 +14,12 @@ import { TestConstants } from '../../../TestConstants'; import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; import { ITestWorkspaceUtil } from '../../../utils/workspace/ITestWorkspaceUtil'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const testWorkspaceUtils: ITestWorkspaceUtil = e2eContainer.get(TYPES.WorkspaceUtil); -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const factoryUrl : string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=https://raw.githubusercontent.com/eclipse/che-devfile-registry/master/devfiles/java-maven/devfile.yaml`; const workspaceSampleName: string = 'console-java-simple'; @@ -40,7 +40,7 @@ suite('Workspace creation via factory url', async () => { suite ('Stopping and deleting the workspace', async () => { test('Stop and remove workspace', async () => { - await testWorkspaceUtils.cleanUpRunningWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await testWorkspaceUtils.cleanUpRunningWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); }); diff --git a/tests/e2e/tests/e2e/theia/GitPublishBranch.spec.ts b/tests/e2e/tests/e2e/theia/GitPublishBranch.spec.ts index c1a0e7a2a93..689c628263c 100644 --- a/tests/e2e/tests/e2e/theia/GitPublishBranch.spec.ts +++ b/tests/e2e/tests/e2e/theia/GitPublishBranch.spec.ts @@ -23,7 +23,7 @@ import { WorkspaceNameHandler } from '../../../utils/WorkspaceNameHandler'; import { By } from 'selenium-webdriver'; import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; import { ITestWorkspaceUtil } from '../../../utils/workspace/ITestWorkspaceUtil'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import CheReporter from '../../../driver/CheReporter'; const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper); @@ -54,7 +54,7 @@ suite('Publish branch in git extension', async () => { test('Login into workspace', async () => { await browserTabsUtil.navigateTo(workspacePrefixUrl + wsNameGitPublishBranch); await loginPage.login(); - WorkspaceHandlingTestsTheia.setWorkspaceName(wsNameGitPublishBranch); + WorkspaceHandlingTests.setWorkspaceName(wsNameGitPublishBranch); CheReporter.registerRunningWorkspace(wsNameGitPublishBranch); await ide.waitWorkspaceAndIde(); await projectTree.openProjectTreeContainer(); diff --git a/tests/e2e/tests/e2e/theia/GitSelfSignCert.spec.ts b/tests/e2e/tests/e2e/theia/GitSelfSignCert.spec.ts index 6115338bc03..cdd5531e856 100644 --- a/tests/e2e/tests/e2e/theia/GitSelfSignCert.spec.ts +++ b/tests/e2e/tests/e2e/theia/GitSelfSignCert.spec.ts @@ -21,12 +21,12 @@ import { TopMenu } from '../../../pageobjects/ide/theia/TopMenu'; import { TimeoutConstants } from '../../../TimeoutConstants'; import { Dashboard } from '../../../pageobjects/dashboard/Dashboard'; import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import { Editor } from '../../../pageobjects/ide/theia/Editor'; import { ITestWorkspaceUtil } from '../../../utils/workspace/ITestWorkspaceUtil'; import CheReporter from '../../../driver/CheReporter'; -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const ide: Ide = e2eContainer.get(CLASSES.Ide); const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper); const quickOpenContainer: QuickOpenContainer = e2eContainer.get(CLASSES.QuickOpenContainer); @@ -49,7 +49,7 @@ suite('Checking git + self sign cert', async () => { suiteSetup(async function () { const wsConfig = await testWorkspaceUtils.getBaseDevfile(); wsConfig.metadata!.name = workspaceName; - WorkspaceHandlingTestsTheia.setWorkspaceName(workspaceName); + WorkspaceHandlingTests.setWorkspaceName(workspaceName); CheReporter.registerRunningWorkspace(workspaceName); await browserTabsUtil.navigateTo(TestConstants.TS_SELENIUM_BASE_URL); await loginPage.login(); diff --git a/tests/e2e/tests/e2e/theia/GitSsh.spec.ts b/tests/e2e/tests/e2e/theia/GitSsh.spec.ts index 8991f2d7da4..57d65747c2a 100644 --- a/tests/e2e/tests/e2e/theia/GitSsh.spec.ts +++ b/tests/e2e/tests/e2e/theia/GitSsh.spec.ts @@ -27,7 +27,7 @@ import { TimeoutConstants } from '../../../TimeoutConstants'; import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; import { Dashboard } from '../../../pageobjects/dashboard/Dashboard'; import { ITestWorkspaceUtil } from '../../../utils/workspace/ITestWorkspaceUtil'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import CheReporter from '../../../driver/CheReporter'; const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper); @@ -62,7 +62,7 @@ suite('Git with ssh workflow', async () => { test('Login into workspace and open tree container', async () => { await dashboard.openDashboard(); await browserTabsUtil.navigateTo(workspacePrefixUrl + wsNameCheckGeneratingKeys); - WorkspaceHandlingTestsTheia.setWorkspaceName(wsNameCheckGeneratingKeys); + WorkspaceHandlingTests.setWorkspaceName(wsNameCheckGeneratingKeys); CheReporter.registerRunningWorkspace(wsNameCheckGeneratingKeys); await ide.waitWorkspaceAndIde(); await projectTree.openProjectTreeContainer(); @@ -113,7 +113,7 @@ suite('Git with ssh workflow', async () => { await testWorkspaceUtils.createWsFromDevFile(data); await dashboard.openDashboard(); await browserTabsUtil.navigateTo(workspacePrefixUrl + wsNameCheckPropagatingKeys); - WorkspaceHandlingTestsTheia.setWorkspaceName(wsNameCheckPropagatingKeys); + WorkspaceHandlingTests.setWorkspaceName(wsNameCheckPropagatingKeys); CheReporter.registerRunningWorkspace(wsNameCheckGeneratingKeys); await ide.waitWorkspaceAndIde(); await projectTree.openProjectTreeContainer(); diff --git a/tests/e2e/tests/e2e/theia/OpenshiftConnector.spec.ts b/tests/e2e/tests/e2e/theia/OpenshiftConnector.spec.ts index 9b698edaab6..e62e9db0775 100644 --- a/tests/e2e/tests/e2e/theia/OpenshiftConnector.spec.ts +++ b/tests/e2e/tests/e2e/theia/OpenshiftConnector.spec.ts @@ -25,7 +25,7 @@ import { DriverHelper } from '../../../utils/DriverHelper'; import { PreferencesHandlerTheia, TerminalRendererTypeTheia } from '../../../utils/theia/PreferencesHandlerTheia'; import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; import { ITestWorkspaceUtil } from '../../../utils/workspace/ITestWorkspaceUtil'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import CheReporter from '../../../driver/CheReporter'; import { Key } from 'selenium-webdriver'; @@ -78,7 +78,7 @@ suite('Openshift connector user story', async () => { test('Login into workspace and open plugin', async () => { await dashboard.openDashboard(); await browserTabsUtil.navigateTo(workspacePrefixUrl + wsName); - WorkspaceHandlingTestsTheia.setWorkspaceName(wsName); + WorkspaceHandlingTests.setWorkspaceName(wsName); CheReporter.registerRunningWorkspace(wsName); await ide.waitWorkspaceAndIde(); await projectTree.openProjectTreeContainer(); diff --git a/tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.ts b/tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.ts index ab18c3a7903..cca506ce989 100644 --- a/tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.ts +++ b/tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.ts @@ -13,11 +13,11 @@ import { CLASSES } from '../../../../inversify.types'; import { TestConstants } from '../../../../TestConstants'; import { ProjectAndFileTestsTheia } from '../../../../testsLibrary/theia/ProjectAndFileTestsTheia'; import { BrowserTabsUtil } from '../../../../utils/BrowserTabsUtil'; -import { WorkspaceHandlingTestsTheia } from '../../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../../testsLibrary/WorkspaceHandlingTests'; import { PreferencesHandlerTheia } from '../../../../utils/theia/PreferencesHandlerTheia'; const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); @@ -53,7 +53,7 @@ suite('Workspace creation via factory url', async () => { suite ('Stopping and deleting the workspace', async () => { test('Stop and remove workspace', async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); }); diff --git a/tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithRootFolderTest.spec.ts b/tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithRootFolderTest.spec.ts index e1153b5167e..7d36672257d 100644 --- a/tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithRootFolderTest.spec.ts +++ b/tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithRootFolderTest.spec.ts @@ -13,11 +13,11 @@ import { CLASSES } from '../../../../inversify.types'; import { TestConstants } from '../../../../TestConstants'; import { ProjectAndFileTestsTheia } from '../../../../testsLibrary/theia/ProjectAndFileTestsTheia'; import { BrowserTabsUtil } from '../../../../utils/BrowserTabsUtil'; -import { WorkspaceHandlingTestsTheia } from '../../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../../testsLibrary/WorkspaceHandlingTests'; import { PreferencesHandlerTheia } from '../../../../utils/theia/PreferencesHandlerTheia'; const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); @@ -50,7 +50,7 @@ suite('Workspace creation via factory url', async () => { suite ('Stopping and deleting the workspace', async () => { test('Stop and remove workspace', async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); }); diff --git a/tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithSpecificBranchTest.spec.ts b/tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithSpecificBranchTest.spec.ts index 622b7220c32..0365d01aa16 100644 --- a/tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithSpecificBranchTest.spec.ts +++ b/tests/e2e/tests/e2e/theia/factories/DirectUrlFactoryWithSpecificBranchTest.spec.ts @@ -13,11 +13,11 @@ import { CLASSES } from '../../../../inversify.types'; import { TestConstants } from '../../../../TestConstants'; import { ProjectAndFileTestsTheia } from '../../../../testsLibrary/theia/ProjectAndFileTestsTheia'; import { BrowserTabsUtil } from '../../../../utils/BrowserTabsUtil'; -import { WorkspaceHandlingTestsTheia } from '../../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../../testsLibrary/WorkspaceHandlingTests'; import { PreferencesHandlerTheia } from '../../../../utils/theia/PreferencesHandlerTheia'; const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); @@ -50,7 +50,7 @@ suite('Workspace creation via factory url', async () => { suite ('Stopping and deleting the workspace', async () => { test('Stop and remove workspace', async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); }); diff --git a/tests/e2e/tests/e2e_happy_path/theia/DevWorkspaceHappyPath.spec.ts b/tests/e2e/tests/e2e_happy_path/theia/DevWorkspaceHappyPath.spec.ts index c14d39ed1e3..ebff360298c 100644 --- a/tests/e2e/tests/e2e_happy_path/theia/DevWorkspaceHappyPath.spec.ts +++ b/tests/e2e/tests/e2e_happy_path/theia/DevWorkspaceHappyPath.spec.ts @@ -24,7 +24,7 @@ import { TimeoutConstants } from '../../../TimeoutConstants'; import { TopMenu } from '../../../pageobjects/ide/theia/TopMenu'; import * as fs from 'fs'; import axios from 'axios'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import CheReporter from '../../../driver/CheReporter'; const ide: Ide = e2eContainer.get(CLASSES.Ide); @@ -66,7 +66,7 @@ suite('Workspace creation via factory url', async () => { }); test('Register running workspace', async () => { - WorkspaceHandlingTestsTheia.setWorkspaceName(projectName); + WorkspaceHandlingTests.setWorkspaceName(projectName); CheReporter.registerRunningWorkspace(projectName); }); @@ -272,7 +272,7 @@ async function sendRequestToDebugApp(urlToApp: string) { const httpClient = axios.create(); httpClient.defaults.timeout = 1000; try { - await httpClient.get(urlToApp); + await httpClient.get(urlToApp); } catch (error) { if (error instanceof Error) { if (error.message === 'timeout of 1000ms exceeded') { diff --git a/tests/e2e/tests/e2e_happy_path/theia/HappyPath.spec.ts b/tests/e2e/tests/e2e_happy_path/theia/HappyPath.spec.ts index b59a01a5bf3..4861eebac7a 100644 --- a/tests/e2e/tests/e2e_happy_path/theia/HappyPath.spec.ts +++ b/tests/e2e/tests/e2e_happy_path/theia/HappyPath.spec.ts @@ -28,7 +28,7 @@ import { TimeoutConstants } from '../../../TimeoutConstants'; import { Logger } from '../../../utils/Logger'; import { RightToolBar } from '../../../pageobjects/ide/theia/RightToolBar'; import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import CheReporter from '../../../driver/CheReporter'; const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper); @@ -77,7 +77,7 @@ suite('Validation of workspace start', async () => { }); test('Register running workspace', async () => { - WorkspaceHandlingTestsTheia.setWorkspaceName(workspaceName); + WorkspaceHandlingTests.setWorkspaceName(workspaceName); CheReporter.registerRunningWorkspace(workspaceName); }); diff --git a/tests/e2e/tests/load_test/theia/LoadTest.spec.ts b/tests/e2e/tests/load_test/theia/LoadTest.spec.ts index 4a5144f31da..545f397cdfd 100644 --- a/tests/e2e/tests/load_test/theia/LoadTest.spec.ts +++ b/tests/e2e/tests/load_test/theia/LoadTest.spec.ts @@ -17,7 +17,7 @@ import { TestConstants } from '../../../TestConstants'; import { WorkspaceNameHandler } from '../../../utils/WorkspaceNameHandler'; import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; import { ITestWorkspaceUtil } from '../../../utils/workspace/ITestWorkspaceUtil'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const ide: Ide = e2eContainer.get(CLASSES.Ide); @@ -45,7 +45,7 @@ suite('Load test suite', async () => { }); test('Wait loading workspace and get time', async () => { - WorkspaceHandlingTestsTheia.setWorkspaceName(workspaceName); + WorkspaceHandlingTests.setWorkspaceName(workspaceName); await ide.waitWorkspaceAndIde(); await projectTree.openProjectTreeContainer(); }); diff --git a/tests/e2e/tests/plugins/theia/GitHubPullRequestPlugin.spec.ts b/tests/e2e/tests/plugins/theia/GitHubPullRequestPlugin.spec.ts index 4d1e450194c..6ea7f9b8830 100644 --- a/tests/e2e/tests/plugins/theia/GitHubPullRequestPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/GitHubPullRequestPlugin.spec.ts @@ -14,7 +14,7 @@ import { Ide } from '../../../pageobjects/ide/theia/Ide'; import { TimeoutConstants } from '../../../TimeoutConstants'; import { TestConstants } from '../../../TestConstants'; import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import { Logger } from '../../../utils/Logger'; import { GitHubPullRequestPlugin } from '../../../pageobjects/ide/theia/plugins/GitHubPullRequestPlugin'; import { GitLoginPage } from '../../../pageobjects/third-parties/GitLoginPage'; @@ -29,7 +29,7 @@ import { Key } from 'selenium-webdriver'; const ide: Ide = e2eContainer.get(CLASSES.Ide); const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); -const workspaceHandling: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const gitHubPullRequestPlugin: GitHubPullRequestPlugin = e2eContainer.get(CLASSES.GitHubPullRequestPlugin); const githubLoginPage: GitLoginPage = e2eContainer.get(CLASSES.GitLoginPage); @@ -75,7 +75,7 @@ suite(`The 'GitHubPullRequestPlugin' test`, async () => { await browserTabsUtil.navigateTo(factoryUrl); }); - workspaceHandling.obtainWorkspaceNameFromStartingPage(); + workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Wait until created workspace is started', async () => { await ide.waitIde(TimeoutConstants.TS_SELENIUM_START_WORKSPACE_TIMEOUT); @@ -136,7 +136,7 @@ suite(`The 'GitHubPullRequestPlugin' test`, async () => { suite('Stopping and deleting the workspace', async () => { test(`Stop and remove workspace`, async () => { if (TestConstants.TS_DELETE_PLUGINS_TEST_WORKSPACE === 'true') { - await workspaceHandling.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); return; } diff --git a/tests/e2e/tests/plugins/theia/InstallPluginUsingUI.spec.ts b/tests/e2e/tests/plugins/theia/InstallPluginUsingUI.spec.ts index 4e38b37eaeb..e272ebbccb7 100644 --- a/tests/e2e/tests/plugins/theia/InstallPluginUsingUI.spec.ts +++ b/tests/e2e/tests/plugins/theia/InstallPluginUsingUI.spec.ts @@ -16,7 +16,7 @@ import { TestConstants } from '../../../TestConstants'; import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; import { PluginsView } from '../../../pageobjects/ide/theia/plugins/PluginsView'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import { Logger } from '../../../utils/Logger'; const ide: Ide = e2eContainer.get(CLASSES.Ide); @@ -24,7 +24,7 @@ const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); const pluginsView: PluginsView = e2eContainer.get(CLASSES.PluginsView); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); -const workspaceHandling: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const devfileUrl: string = 'https://raw.githubusercontent.com/eclipse/che/main/tests/e2e/files/devfiles/plugins/InstallPluginUsingUI.yaml'; const factoryUrl: string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=${devfileUrl}`; @@ -37,7 +37,7 @@ suite(`The 'InstallPluginUsingUI' test`, async () => { await browserTabsUtil.navigateTo(factoryUrl); }); - workspaceHandling.obtainWorkspaceNameFromStartingPage(); + workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); test('Wait until created workspace is started', async () => { await ide.waitIde(TimeoutConstants.TS_SELENIUM_START_WORKSPACE_TIMEOUT); @@ -66,7 +66,7 @@ suite(`The 'InstallPluginUsingUI' test`, async () => { suite('Stopping and deleting the workspace', async () => { test(`Stop and remove workspace`, async () => { if (TestConstants.TS_DELETE_PLUGINS_TEST_WORKSPACE === 'true') { - await workspaceHandling.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); return; } diff --git a/tests/e2e/tests/plugins/theia/JavaPlugin.spec.ts b/tests/e2e/tests/plugins/theia/JavaPlugin.spec.ts index 47e4e95f0b8..a661b5edf45 100644 --- a/tests/e2e/tests/plugins/theia/JavaPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/JavaPlugin.spec.ts @@ -16,12 +16,12 @@ import { TestConstants } from '../../../TestConstants'; import { Key } from 'selenium-webdriver'; import { Editor } from '../../../pageobjects/ide/theia/Editor'; import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import { Logger } from '../../../utils/Logger'; import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; import { PreferencesHandlerTheia } from '../../../utils/theia/PreferencesHandlerTheia'; -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const ide: Ide = e2eContainer.get(CLASSES.Ide); @@ -89,7 +89,7 @@ suite(`The 'JavaPlugin' test`, async () => { suite('Stopping and deleting the workspace', async () => { test('Stop and remove workspace', async () => { if (TestConstants.TS_DELETE_PLUGINS_TEST_WORKSPACE === 'true') { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); return; } diff --git a/tests/e2e/tests/plugins/theia/PhpPlugin.spec.ts b/tests/e2e/tests/plugins/theia/PhpPlugin.spec.ts index a0510a35eba..222026e1074 100644 --- a/tests/e2e/tests/plugins/theia/PhpPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/PhpPlugin.spec.ts @@ -19,10 +19,10 @@ import { Editor } from '../../../pageobjects/ide/theia/Editor'; import { TopMenu } from '../../../pageobjects/ide/theia/TopMenu'; import { DebugView } from '../../../pageobjects/ide/theia/DebugView'; import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import { Logger } from '../../../utils/Logger'; -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const ide: Ide = e2eContainer.get(CLASSES.Ide); const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); const editor: Editor = e2eContainer.get(CLASSES.Editor); @@ -105,7 +105,7 @@ suite(`The 'PhpPlugin' tests`, async () => { suite('Stopping and deleting the workspace', async () => { test('Stop and remove workspace', async () => { if (TestConstants.TS_DELETE_PLUGINS_TEST_WORKSPACE === 'true') { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); return; } diff --git a/tests/e2e/tests/plugins/theia/PythonPlugin.spec.ts b/tests/e2e/tests/plugins/theia/PythonPlugin.spec.ts index ffc8f6bd386..df7712bef8e 100644 --- a/tests/e2e/tests/plugins/theia/PythonPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/PythonPlugin.spec.ts @@ -14,7 +14,7 @@ import { TestConstants } from '../../../TestConstants'; import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; import { Key } from 'selenium-webdriver'; import { Editor } from '../../../pageobjects/ide/theia/Editor'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import { Logger } from '../../../utils/Logger'; import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; @@ -22,7 +22,7 @@ import { PreferencesHandlerTheia } from '../../../utils/theia/PreferencesHandler import { TimeoutConstants } from '../../../TimeoutConstants'; const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); const editor: Editor = e2eContainer.get(CLASSES.Editor); @@ -76,7 +76,7 @@ suite(`The 'PythonPlugin' test`, async () => { suite('Stopping and deleting the workspace', async () => { test('Stop and remove workspace', async () => { if (TestConstants.TS_DELETE_PLUGINS_TEST_WORKSPACE === 'true') { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); return; } diff --git a/tests/e2e/tests/plugins/theia/TypescriptPlugin.spec.ts b/tests/e2e/tests/plugins/theia/TypescriptPlugin.spec.ts index 3e32d726ec6..16b75672427 100644 --- a/tests/e2e/tests/plugins/theia/TypescriptPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/TypescriptPlugin.spec.ts @@ -21,13 +21,13 @@ import { TopMenu } from '../../../pageobjects/ide/theia/TopMenu'; import { DebugView } from '../../../pageobjects/ide/theia/DebugView'; import { Terminal } from '../../../pageobjects/ide/theia/Terminal'; import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import { Logger } from '../../../utils/Logger'; import { PreferencesHandlerTheia } from '../../../utils/theia/PreferencesHandlerTheia'; import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia); -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper); const ide: Ide = e2eContainer.get(CLASSES.Ide); const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); @@ -158,7 +158,7 @@ suite(`The 'TypescriptPlugin and Node-debug' tests`, async () => { suite('Stopping and deleting the workspace', async () => { test('Stop and remove workspace', async () => { if (TestConstants.TS_DELETE_PLUGINS_TEST_WORKSPACE === 'true') { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); return; } diff --git a/tests/e2e/tests/plugins/theia/VscodeKubernetesPlugin.spec.ts b/tests/e2e/tests/plugins/theia/VscodeKubernetesPlugin.spec.ts index 5e823e6d05b..412f7693e14 100644 --- a/tests/e2e/tests/plugins/theia/VscodeKubernetesPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/VscodeKubernetesPlugin.spec.ts @@ -15,14 +15,14 @@ import { TimeoutConstants } from '../../../TimeoutConstants'; import { TestConstants } from '../../../TestConstants'; import { KubernetesPlugin } from '../../../pageobjects/ide/theia/plugins/KubernetesPlugin'; import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import { Logger } from '../../../utils/Logger'; import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; import { TopMenu } from '../../../pageobjects/ide/theia/TopMenu'; import { QuickOpenContainer } from '../../../pageobjects/ide/theia/QuickOpenContainer'; import { OpenDialogWidget, Buttons } from '../../../pageobjects/ide/theia/OpenDialogWidget'; -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const ide: Ide = e2eContainer.get(CLASSES.Ide); const kubernetesPlugin: KubernetesPlugin = e2eContainer.get(CLASSES.KubernetesPlugin); @@ -73,7 +73,7 @@ suite(`The 'VscodeKubernetesPlugin' test`, async () => { suite('Stopping and deleting the workspace', async () => { test('Stop and remove workspace', async () => { if (TestConstants.TS_DELETE_PLUGINS_TEST_WORKSPACE === 'true') { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); return; } diff --git a/tests/e2e/tests/plugins/theia/VscodeShellcheckPlugin.spec.ts b/tests/e2e/tests/plugins/theia/VscodeShellcheckPlugin.spec.ts index 0705917ffb3..b1b24e02919 100644 --- a/tests/e2e/tests/plugins/theia/VscodeShellcheckPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/VscodeShellcheckPlugin.spec.ts @@ -17,11 +17,11 @@ import { PreferencesHandlerTheia } from '../../../utils/theia/PreferencesHandler import { Editor } from '../../../pageobjects/ide/theia/Editor'; import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; import { Key } from 'selenium-webdriver'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import { Logger } from '../../../utils/Logger'; import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const ide: Ide = e2eContainer.get(CLASSES.Ide); const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); @@ -90,7 +90,7 @@ suite(`The 'VscodeShellcheckPlugin' test`, async () => { suite('Stopping and deleting the workspace', async () => { test('Stop and remove workspace', async () => { if (TestConstants.TS_DELETE_PLUGINS_TEST_WORKSPACE === 'true') { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); return; } diff --git a/tests/e2e/tests/plugins/theia/VscodeValePlugin.spec.ts b/tests/e2e/tests/plugins/theia/VscodeValePlugin.spec.ts index fe825225e75..92d9634e2b9 100644 --- a/tests/e2e/tests/plugins/theia/VscodeValePlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/VscodeValePlugin.spec.ts @@ -17,7 +17,7 @@ import { TestConstants } from '../../../TestConstants'; import { TimeoutConstants } from '../../../TimeoutConstants'; import { Terminal } from '../../../pageobjects/ide/theia/Terminal'; import { Logger } from '../../../utils/Logger'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; import { Key } from 'selenium-webdriver'; @@ -26,7 +26,7 @@ const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); const editor: Editor = e2eContainer.get(CLASSES.Editor); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); const terminal: Terminal = e2eContainer.get(CLASSES.Terminal); -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const devfileUrl: string = 'https://raw.githubusercontent.com/eclipse/che/main/tests/e2e/files/devfiles/plugins/VscodeValePlugin.yaml'; const factoryUrl: string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=${devfileUrl}`; @@ -75,7 +75,7 @@ suite('The "VscodeValePlugin" userstory', async () => { suite('Stopping and deleting the workspace', async () => { test('Stop and remove workspace', async () => { if (TestConstants.TS_DELETE_PLUGINS_TEST_WORKSPACE === 'true') { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); return; } diff --git a/tests/e2e/tests/plugins/theia/VscodeXmlPlugin.spec.ts b/tests/e2e/tests/plugins/theia/VscodeXmlPlugin.spec.ts index 22e9962c560..f9a0609bf47 100644 --- a/tests/e2e/tests/plugins/theia/VscodeXmlPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/VscodeXmlPlugin.spec.ts @@ -13,7 +13,7 @@ import { CLASSES } from '../../../inversify.types'; import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; import { Editor } from '../../../pageobjects/ide/theia/Editor'; import { TestConstants } from '../../../TestConstants'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; import { PreferencesHandlerTheia } from '../../../utils/theia/PreferencesHandlerTheia'; import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; @@ -23,7 +23,7 @@ const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.P const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); const editor: Editor = e2eContainer.get(CLASSES.Editor); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); const devfileUrl: string = TestConstants.TS_TEST_WORKSPACE_DEVFILE_REPO || 'https://github.com/che-samples/web-nodejs-sample/tree/xml-plugin'; @@ -97,7 +97,7 @@ suite('The "VscodeXmlPlugin" userstory', async () => { suite ('Stopping and deleting the workspace', async () => { test('Stop and remove workspace', async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); }); diff --git a/tests/e2e/tests/plugins/theia/VscodeYamlPlugin.spec.ts b/tests/e2e/tests/plugins/theia/VscodeYamlPlugin.spec.ts index ae6bebbfc7e..48ce9215c85 100644 --- a/tests/e2e/tests/plugins/theia/VscodeYamlPlugin.spec.ts +++ b/tests/e2e/tests/plugins/theia/VscodeYamlPlugin.spec.ts @@ -13,7 +13,7 @@ import { CLASSES } from '../../../inversify.types'; import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree'; import { Editor } from '../../../pageobjects/ide/theia/Editor'; import { TestConstants } from '../../../TestConstants'; -import { WorkspaceHandlingTestsTheia } from '../../../testsLibrary/theia/WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests'; import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil'; import { PreferencesHandlerTheia } from '../../../utils/theia/PreferencesHandlerTheia'; import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia'; @@ -23,7 +23,7 @@ const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.P const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree); const editor: Editor = e2eContainer.get(CLASSES.Editor); const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil); -const workspaceHandlingTests: WorkspaceHandlingTestsTheia = e2eContainer.get(CLASSES.WorkspaceHandlingTestsTheia); +const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests); const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); const devfileUrl: string = TestConstants.TS_TEST_WORKSPACE_DEVFILE_REPO || 'https://github.com/che-samples/web-nodejs-sample/tree/yaml-plugin'; @@ -92,7 +92,7 @@ suite('The "VscodeYamlPlugin" userstory', async () => { suite ('Stopping and deleting the workspace', async () => { test('Stop and remove workspace', async () => { - await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTestsTheia.getWorkspaceName()); + await workspaceHandlingTests.stopAndRemoveWorkspace(WorkspaceHandlingTests.getWorkspaceName()); }); }); diff --git a/tests/e2e/testsLibrary/theia/WorkspaceHandlingTestsTheia.ts b/tests/e2e/testsLibrary/WorkspaceHandlingTests.ts similarity index 59% rename from tests/e2e/testsLibrary/theia/WorkspaceHandlingTestsTheia.ts rename to tests/e2e/testsLibrary/WorkspaceHandlingTests.ts index 899587cc047..51d62fcebef 100644 --- a/tests/e2e/testsLibrary/theia/WorkspaceHandlingTestsTheia.ts +++ b/tests/e2e/testsLibrary/WorkspaceHandlingTests.ts @@ -10,21 +10,20 @@ import 'reflect-metadata'; import { inject, injectable } from 'inversify'; -import { CLASSES } from '../../inversify.types'; -import { Dashboard } from '../../pageobjects/dashboard/Dashboard'; -import { CreateWorkspace } from '../../pageobjects/dashboard/CreateWorkspace'; -import { Workspaces } from '../../pageobjects/dashboard/Workspaces'; -import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; -import { Logger } from '../../utils/Logger'; -import { ApiUrlResolver } from '../../utils/workspace/ApiUrlResolver'; -import { TimeoutConstants } from '../../TimeoutConstants'; -import { DriverHelper } from '../../utils/DriverHelper'; -import { Ide } from '../../pageobjects/ide/theia/Ide'; -import { By, error } from 'selenium-webdriver'; -import { TestConstants } from '../../TestConstants'; +import { CLASSES } from '../inversify.types'; +import { Dashboard } from '../pageobjects/dashboard/Dashboard'; +import { CreateWorkspace } from '../pageobjects/dashboard/CreateWorkspace'; +import { Workspaces } from '../pageobjects/dashboard/Workspaces'; +import { BrowserTabsUtil } from '../utils/BrowserTabsUtil'; +import { Logger } from '../utils/Logger'; +import { ApiUrlResolver } from '../utils/workspace/ApiUrlResolver'; +import { TimeoutConstants } from '../TimeoutConstants'; +import { DriverHelper } from '../utils/DriverHelper'; +import { By } from 'selenium-webdriver'; +import { TestConstants } from '../TestConstants'; @injectable() -export class WorkspaceHandlingTestsTheia { +export class WorkspaceHandlingTests { private static START_WORKSPACE_PAGE_NAME_LOCATOR: By = By.xpath(`//div[@class="ui-container"]/div[@class="pf-c-page"]//div[@class="pf-c-content"]/h1`); private static READY_TO_READ_WORKSPACE_NAME_LOCATOR: By = By.xpath(`//div[@class="ui-container"]/div[@class="pf-c-page"]//div[@class="pf-c-content"]/h1[contains(.,'Starting workspace ')]`); @@ -32,19 +31,19 @@ export class WorkspaceHandlingTestsTheia { private static parentGUID: string; public static getWorkspaceName(): string { - return WorkspaceHandlingTestsTheia.workspaceName; + return WorkspaceHandlingTests.workspaceName; } public static setWorkspaceName(workspaceName: string) { - WorkspaceHandlingTestsTheia.workspaceName = workspaceName; + WorkspaceHandlingTests.workspaceName = workspaceName; } public setWindowHandle(guid: string) { - WorkspaceHandlingTestsTheia.parentGUID = guid; + WorkspaceHandlingTests.parentGUID = guid; } public getWindowHandle(): string { - return WorkspaceHandlingTestsTheia.parentGUID; + return WorkspaceHandlingTests.parentGUID; } constructor( @@ -53,8 +52,7 @@ export class WorkspaceHandlingTestsTheia { @inject(CLASSES.Workspaces) private readonly workspaces: Workspaces, @inject(CLASSES.BrowserTabsUtil) private readonly browserTabsUtil: BrowserTabsUtil, @inject(CLASSES.ApiUrlResolver) private readonly apiUrlResolver: ApiUrlResolver, - @inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper, - @inject(CLASSES.Ide) private readonly ide: Ide) {} + @inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper) {} public createAndOpenWorkspace(stack: string) { test(`Create and open new workspace, stack:${stack}`, async () => { @@ -63,9 +61,9 @@ export class WorkspaceHandlingTestsTheia { await this.apiUrlResolver.getWorkspacesApiUrl(); await this.dashboard.clickCreateWorkspaceButton(); await this.createWorkspace.waitPage(); - WorkspaceHandlingTestsTheia.parentGUID = await this.browserTabsUtil.getCurrentWindowHandle(); + WorkspaceHandlingTests.parentGUID = await this.browserTabsUtil.getCurrentWindowHandle(); await this.createWorkspace.clickOnSample(stack); - await this.browserTabsUtil.waitAndSwitchToAnotherWindow(WorkspaceHandlingTestsTheia.parentGUID, TimeoutConstants.TS_IDE_LOAD_TIMEOUT); + await this.browserTabsUtil.waitAndSwitchToAnotherWindow(WorkspaceHandlingTests.parentGUID, TimeoutConstants.TS_IDE_LOAD_TIMEOUT); }); } @@ -84,7 +82,7 @@ export class WorkspaceHandlingTestsTheia { test('Obtain workspace name from workspace loader page', async() => { try { Logger.info('Waiting for workspace name on workspace loader page'); - await this.driverHelper.waitVisibility(WorkspaceHandlingTestsTheia.READY_TO_READ_WORKSPACE_NAME_LOCATOR, TimeoutConstants.TS_WAIT_LOADER_PRESENCE_TIMEOUT); + await this.driverHelper.waitVisibility(WorkspaceHandlingTests.READY_TO_READ_WORKSPACE_NAME_LOCATOR, TimeoutConstants.TS_WAIT_LOADER_PRESENCE_TIMEOUT); const timeout: number = TimeoutConstants.TS_IDE_LOAD_TIMEOUT; const polling: number = TestConstants.TS_SELENIUM_DEFAULT_POLLING; @@ -92,12 +90,12 @@ export class WorkspaceHandlingTestsTheia { let startingWorkspaceLineContent: string; for (let i = 0; i < attempts; i++) { - startingWorkspaceLineContent = await this.driverHelper.getDriver().findElement(WorkspaceHandlingTestsTheia.START_WORKSPACE_PAGE_NAME_LOCATOR).getAttribute('innerHTML'); + startingWorkspaceLineContent = await this.driverHelper.getDriver().findElement(WorkspaceHandlingTests.START_WORKSPACE_PAGE_NAME_LOCATOR).getAttribute('innerHTML'); // cutting away leading text - WorkspaceHandlingTestsTheia.workspaceName = startingWorkspaceLineContent.substring('Starting workspace '.length).trim(); - if (WorkspaceHandlingTestsTheia.workspaceName !== '') { - Logger.info(`Obtained workspace name from workspace loader page: ${WorkspaceHandlingTestsTheia.workspaceName}`); + WorkspaceHandlingTests.workspaceName = startingWorkspaceLineContent.substring('Starting workspace '.length).trim(); + if (WorkspaceHandlingTests.workspaceName !== '') { + Logger.info(`Obtained workspace name from workspace loader page: ${WorkspaceHandlingTests.workspaceName}`); break; } @@ -110,29 +108,6 @@ export class WorkspaceHandlingTestsTheia { }); } - public switchBackToFirstOpenIdeTabFromLeftToRight() { - test('WorkspaceHandlingTests.switchBackToIdeTab', async () => { - let tabs = await this.driverHelper.getDriver().getAllWindowHandles(); - Logger.trace(`WorkspaceHandlingTests.switchBackToIdeTab Found ${tabs.length} window handles, iterating...`); - for (let i = 0; i < tabs.length; i++) { - await this.browserTabsUtil.switchToWindow(tabs[i]); - try { - await this.ide.waitIde(TimeoutConstants.TS_IDE_LOAD_TIMEOUT); - Logger.debug(`WorkspaceHandlingTests.switchBackToIdeTab located and switched to IDE tab`); - return; - } catch (err) { - if (err instanceof error.TimeoutError) { - Logger.warn(`WorkspaceHandlingTests.switchBackToIdeTab Locator timed out, trying with another window handle.`); - continue; - } - Logger.error(`WorkspaceHandlingTests.switchBackToIdeTab Received unexpected exception while trying to locate IDE tab:${err}`); - throw err; - } - } - Logger.error(`WorkspaceHandlingTests.switchBackToIdeTab Failed to locate IDE tab, out of window handles.`); - }); - } - public async stopWorkspace(workspaceName: string) { await this.dashboard.openDashboard(); await this.dashboard.stopWorkspaceByUI(workspaceName); diff --git a/tests/e2e/testsLibrary/theia/CodeExecutionTestsTheia.ts b/tests/e2e/testsLibrary/theia/CodeExecutionTestsTheia.ts index d1a765fb5b0..c57effe5805 100644 --- a/tests/e2e/testsLibrary/theia/CodeExecutionTestsTheia.ts +++ b/tests/e2e/testsLibrary/theia/CodeExecutionTestsTheia.ts @@ -20,7 +20,7 @@ import { DialogWindow } from '../../pageobjects/ide/theia/DialogWindow'; import { DriverHelper } from '../../utils/DriverHelper'; import { Logger } from '../../utils/Logger'; import { QuickOpenContainer } from '../../pageobjects/ide/theia/QuickOpenContainer'; -import { WorkspaceHandlingTestsTheia } from './WorkspaceHandlingTestsTheia'; +import { WorkspaceHandlingTests } from '../WorkspaceHandlingTests'; import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; @injectable() @@ -36,7 +36,7 @@ export class CodeExecutionTestsTheia { @inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper, @inject(CLASSES.QuickOpenContainer) private readonly quickOpenContainer: QuickOpenContainer, @inject(CLASSES.BrowserTabsUtil) private readonly browserTabsUtil: BrowserTabsUtil, - @inject(CLASSES.WorkspaceHandlingTestsTheia) private readonly workspaceHandlingTests: WorkspaceHandlingTestsTheia) {} + @inject(CLASSES.WorkspaceHandlingTests) private readonly workspaceHandlingTests: WorkspaceHandlingTests) {} public runTask(taskName: string, timeout: number) { test(`Run command '${taskName}'`, async () => { diff --git a/tests/e2e/testsLibrary/theia/ProjectAndFileTestsTheia.ts b/tests/e2e/testsLibrary/theia/ProjectAndFileTestsTheia.ts index fcce502aba4..064a35aaa07 100644 --- a/tests/e2e/testsLibrary/theia/ProjectAndFileTestsTheia.ts +++ b/tests/e2e/testsLibrary/theia/ProjectAndFileTestsTheia.ts @@ -10,7 +10,7 @@ import 'reflect-metadata'; import { inject, injectable } from 'inversify'; -import { By } from 'selenium-webdriver'; +import { By, error } from 'selenium-webdriver'; import { Ide } from '../../pageobjects/ide/theia/Ide'; import { ProjectTree } from '../../pageobjects/ide/theia/ProjectTree'; import { OpenEditors } from '../../pageobjects/ide/theia/OpenEditors'; @@ -18,6 +18,8 @@ import { Editor } from '../../pageobjects/ide/theia/Editor'; import { TimeoutConstants } from '../../TimeoutConstants'; import { DriverHelper } from '../../utils/DriverHelper'; import { CLASSES } from '../../inversify.types'; +import { Logger } from '../../utils/Logger'; +import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil'; @injectable() export class ProjectAndFileTestsTheia { @@ -27,7 +29,31 @@ export class ProjectAndFileTestsTheia { @inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper, @inject(CLASSES.ProjectTree) private readonly projectTree: ProjectTree, @inject(CLASSES.OpenEditors) private readonly openEditors: OpenEditors, - @inject(CLASSES.Editor) private readonly editor: Editor) {} + @inject(CLASSES.Editor) private readonly editor: Editor, + @inject(CLASSES.BrowserTabsUtil) private readonly browserTabsUtil: BrowserTabsUtil) {} + + public switchBackToFirstOpenIdeTabFromLeftToRight() { + test('WorkspaceHandlingTests.switchBackToIdeTab', async () => { + let tabs = await this.driverHelper.getDriver().getAllWindowHandles(); + Logger.trace(`WorkspaceHandlingTests.switchBackToIdeTab Found ${tabs.length} window handles, iterating...`); + for (let i = 0; i < tabs.length; i++) { + await this.browserTabsUtil.switchToWindow(tabs[i]); + try { + await this.ide.waitIde(TimeoutConstants.TS_IDE_LOAD_TIMEOUT); + Logger.debug(`WorkspaceHandlingTests.switchBackToIdeTab located and switched to IDE tab`); + return; + } catch (err) { + if (err instanceof error.TimeoutError) { + Logger.warn(`WorkspaceHandlingTests.switchBackToIdeTab Locator timed out, trying with another window handle.`); + continue; + } + Logger.error(`WorkspaceHandlingTests.switchBackToIdeTab Received unexpected exception while trying to locate IDE tab:${err}`); + throw err; + } + } + Logger.error(`WorkspaceHandlingTests.switchBackToIdeTab Failed to locate IDE tab, out of window handles.`); + }); + } public waitWorkspaceReadiness(sampleName : string, folder: string, checkNotification: boolean = true, restartWorkspaceDialogIsExpected: boolean = false) { test('Wait for workspace readiness', async () => { From 3c7125a69c51ef0007cb799898b1ab6dcc479608 Mon Sep 17 00:00:00 2001 From: Tibor Dancs Date: Sun, 20 Nov 2022 12:24:34 +0100 Subject: [PATCH 5/5] Parametrizing VSCode versions for monaco-page-objects initialization Signed-off-by: Tibor Dancs --- tests/e2e/TestConstants.ts | 21 +++++++++++++++++-- tests/e2e/driver/CheReporter.ts | 11 ++++++---- tests/e2e/initDevfileTests.sh | 14 ++----------- tests/e2e/initPluginTest.sh | 6 +----- ...on => mocha-ws-creation-and-ls-theia.json} | 0 tests/e2e/package.json | 2 +- .../e2e/pageobjects/ide/theia/ContextMenu.ts | 6 +++--- .../devfiles/code/JavaSpringBoot.spec.ts | 4 +--- .../theia/DevWorkspaceHappyPath.spec.ts | 2 -- 9 files changed, 34 insertions(+), 32 deletions(-) rename tests/e2e/{mocha-wkspc-creation-and-ls-theia.json => mocha-ws-creation-and-ls-theia.json} (100%) diff --git a/tests/e2e/TestConstants.ts b/tests/e2e/TestConstants.ts index 5e8579f3cc2..9e4a68fb919 100644 --- a/tests/e2e/TestConstants.ts +++ b/tests/e2e/TestConstants.ts @@ -17,6 +17,11 @@ function getBaseUrl(): string { return baseUrl.replace(/\/$/, ''); } +export enum EditorType { + THEIA = 'theia', + CHE_CODE = 'che-code' +} + export const TestConstants = { /** * Base URL of the application which should be checked @@ -56,9 +61,21 @@ export const TestConstants = { /** * Editor the tests are running against, "code" by default. - * Possible values: "code", "theia" + * Possible values: "che-code", "theia" + */ + TS_SELENIUM_EDITOR: process.env.TS_SELENIUM_EDITOR || EditorType.CHE_CODE, + + /** + * Base version of VSCode editor for monaco-page-objects, "1.37.0" by default. + */ + TS_SELENIUM_MONACO_PAGE_OBJECTS_BASE_VERSION: process.env.TS_SELENIUM_MONACO_PAGE_OBJECTS_BASE_VERSION || '1.37.0', + + /** + * Latest compatible version to be used, based on versions available in + * https://github.com/redhat-developer/vscode-extension-tester/tree/master/locators/lib , + * "1.73.0" by default. */ - TS_SELENIUM_EDITOR: process.env.TS_SELENIUM_EDITOR || 'code', + TS_SELENIUM_MONACO_PAGE_OBJECTS_USE_VERSION: process.env.TS_SELENIUM_MONACO_PAGE_OBJECTS_USE_VERSION || '1.73.0', /** * Default ammount of tries, "5" by default. diff --git a/tests/e2e/driver/CheReporter.ts b/tests/e2e/driver/CheReporter.ts index 6359e74bb79..233f07ffb50 100644 --- a/tests/e2e/driver/CheReporter.ts +++ b/tests/e2e/driver/CheReporter.ts @@ -13,7 +13,7 @@ import { inversifyConfig } from '..'; import { TYPES, CLASSES } from '..'; import * as fs from 'fs'; import * as rm from 'rimraf'; -import { TestConstants } from '../TestConstants'; +import { EditorType, TestConstants } from '../TestConstants'; import { logging } from 'selenium-webdriver'; import { DriverHelper } from '../utils/DriverHelper'; import { ScreenCatcher } from '../utils/ScreenCatcher'; @@ -57,6 +57,8 @@ class CheReporter extends mocha.reporters.Spec { TS_SELENIUM_USERNAME: ${TestConstants.TS_SELENIUM_USERNAME} TS_SELENIUM_PASSWORD: ${TestConstants.TS_SELENIUM_PASSWORD} + TS_SELENIUM_EDITOR: ${TestConstants.TS_SELENIUM_EDITOR} + TS_SELENIUM_HAPPY_PATH_WORKSPACE_NAME: ${TestConstants.TS_SELENIUM_HAPPY_PATH_WORKSPACE_NAME} TS_SELENIUM_DELAY_BETWEEN_SCREENSHOTS: ${TestConstants.TS_SELENIUM_DELAY_BETWEEN_SCREENSHOTS} TS_SELENIUM_REPORT_FOLDER: ${TestConstants.TS_SELENIUM_REPORT_FOLDER} @@ -88,12 +90,13 @@ class CheReporter extends mocha.reporters.Spec { CheApiRequestHandler.enableResponseInterceptor(); } - if (TestConstants.TS_SELENIUM_EDITOR === 'theia') { + if (TestConstants.TS_SELENIUM_EDITOR === EditorType.THEIA) { let preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia); await preferencesHandler.setConfirmExit(AskForConfirmationTypeTheia.never); await preferencesHandler.setTerminalType(TerminalRendererTypeTheia.dom); - } else if (TestConstants.TS_SELENIUM_EDITOR === 'code') { - monacoPageObjects.initPageObjects('1.71.0', '1.37.0', vscodeExtensionTesterLocators.getLocatorsPath(), driver.get(), 'google-chrome'); + } else if (TestConstants.TS_SELENIUM_EDITOR === EditorType.CHE_CODE) { + // init vscode-extension-tester monaco-page-objects + monacoPageObjects.initPageObjects(TestConstants.TS_SELENIUM_MONACO_PAGE_OBJECTS_USE_VERSION, TestConstants.TS_SELENIUM_MONACO_PAGE_OBJECTS_BASE_VERSION, vscodeExtensionTesterLocators.getLocatorsPath(), driver.get(), 'google-chrome'); } }); diff --git a/tests/e2e/initDevfileTests.sh b/tests/e2e/initDevfileTests.sh index 79ee18c035a..066e4951aa2 100755 --- a/tests/e2e/initDevfileTests.sh +++ b/tests/e2e/initDevfileTests.sh @@ -21,21 +21,11 @@ launchSingleUserstory(){ echo "Launching the \"${USERSTORY}\" userstory"; echo "" - if [ "${TS_SELENIUM_EDITOR}" == "theia" ]; then - tsc && mocha --config mocha-single-devfile.json --spec dist/tests/login/Login.spec.js --spec dist/tests/devfiles/theia/${USERSTORY}.spec.js ; - elif [ "${TS_SELENIUM_EDITOR}" == "code" ]; then - tsc && mocha --config mocha-single-devfile.json --spec dist/tests/login/Login.spec.js --spec dist/tests/devfiles/code/${USERSTORY}.spec.js ; - fi - + tsc && mocha --config mocha-single-devfile.json --spec dist/tests/login/Login.spec.js --spec dist/tests/devfiles/${TS_SELENIUM_EDITOR}/${USERSTORY}.spec.js ; } checkUserstoryName(){ - local checkedName; - if [ "${TS_SELENIUM_EDITOR}" == "theia" ]; then - checkedName="$(ls tests/devfiles/theia | grep ${USERSTORY}.spec.ts)"; - elif [ "${TS_SELENIUM_EDITOR}" == "code" ]; then - checkedName="$(ls tests/devfiles/code | grep ${USERSTORY}.spec.ts)"; - fi + local checkedName="$(ls tests/devfiles/${TS_SELENIUM_EDITOR} | grep ${USERSTORY}.spec.ts)"; if [ -z "$checkedName" ]; then echo "" diff --git a/tests/e2e/initPluginTest.sh b/tests/e2e/initPluginTest.sh index 26b20554a85..882eaabf9f2 100755 --- a/tests/e2e/initPluginTest.sh +++ b/tests/e2e/initPluginTest.sh @@ -6,8 +6,4 @@ echo "" echo "Launching the \"${USERSTORY}\" userstory"; echo "" -if [ "${TS_SELENIUM_EDITOR}" == "theia" ]; then - npm run init-mocha-opts -- --spec dist/tests/plugins/theia/${USERSTORY}.spec.js -elif [ "${TS_SELENIUM_EDITOR}" == "code" ]; then - npm run init-mocha-opts -- --spec dist/tests/plugins/code/${USERSTORY}.spec.js -fi +npm run init-mocha-opts -- --spec dist/tests/plugins/${TS_SELENIUM_EDITOR}/${USERSTORY}.spec.js diff --git a/tests/e2e/mocha-wkspc-creation-and-ls-theia.json b/tests/e2e/mocha-ws-creation-and-ls-theia.json similarity index 100% rename from tests/e2e/mocha-wkspc-creation-and-ls-theia.json rename to tests/e2e/mocha-ws-creation-and-ls-theia.json diff --git a/tests/e2e/package.json b/tests/e2e/package.json index ecfa61453d9..d88c0527136 100644 --- a/tests/e2e/package.json +++ b/tests/e2e/package.json @@ -18,7 +18,7 @@ "load-test-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-load-theia.json", "test-happy-path-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-happy-path-theia.json", "test-devworkspace-happy-path-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-devworkspace-happy-path-theia.json", - "test-wkspc-creation-and-ls-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-wkspc-creation-and-ls-theia.json", + "test-ws-creation-and-ls-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-ws-creation-and-ls-theia.json", "test-java-vertx-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-java-vertx-theia.json", "test-java-springboot-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-java-springboot-theia.json", "test-git-ssh-theia": "./generateIndex.sh && npm run lint && npm run tsc && mocha --config mocha-git-ssh-theia.json", diff --git a/tests/e2e/pageobjects/ide/theia/ContextMenu.ts b/tests/e2e/pageobjects/ide/theia/ContextMenu.ts index 87bdfafb6a7..572589056d3 100644 --- a/tests/e2e/pageobjects/ide/theia/ContextMenu.ts +++ b/tests/e2e/pageobjects/ide/theia/ContextMenu.ts @@ -12,7 +12,7 @@ import 'reflect-metadata'; import { injectable, inject } from 'inversify'; import { DriverHelper } from '../../../utils/DriverHelper'; import { CLASSES } from '../../../inversify.types'; -import { By, Key } from 'selenium-webdriver'; +import { By, Key, WebElement } from 'selenium-webdriver'; import { Logger } from '../../../utils/Logger'; import { TimeoutConstants } from '../../../TimeoutConstants'; @@ -26,8 +26,8 @@ export class ContextMenu { async invokeContextMenuOnTheElementWithMouse(elementLocator: By) { Logger.debug(`ContextMenu.invokeContextMenuOnTheElementWithMouse ${elementLocator}`); - // const webElement: WebElement = await this.driverHelper.waitVisibility(elementLocator, TimeoutConstants.TS_CONTEXT_MENU_TIMEOUT); - // await this.driverHelper.getAction().click(webElement, Button.RIGHT).perform(); + const webElement: WebElement = await this.driverHelper.waitVisibility(elementLocator, TimeoutConstants.TS_CONTEXT_MENU_TIMEOUT); + await this.driverHelper.getAction().contextClick(webElement).perform(); this.waitContextMenu(); } diff --git a/tests/e2e/tests/devfiles/code/JavaSpringBoot.spec.ts b/tests/e2e/tests/devfiles/code/JavaSpringBoot.spec.ts index e63b8b14b9f..a19824d3cea 100644 --- a/tests/e2e/tests/devfiles/code/JavaSpringBoot.spec.ts +++ b/tests/e2e/tests/devfiles/code/JavaSpringBoot.spec.ts @@ -41,7 +41,7 @@ suite(`${stack} test`, async () => { await dashboard.clickCreateWorkspaceButton(); await createWorkspace.waitPage(); workspaceHandlingTests.setWindowHandle(await browserTabsUtil.getCurrentWindowHandle()); - await createWorkspace.startWorkspaceUsingFactory(`https://github.com/devspaces-samples/rest-http-example/tree/devspaces-3-rhel-8?che-editor=che-incubator/che-code/insiders&storageType=persistent`); + await createWorkspace.startWorkspaceUsingFactory(`https://github.com/che-samples/web-java-spring-boot/tree/master?che-editor=che-incubator/che-code/insiders&storageType=persistent`); await browserTabsUtil.waitAndSwitchToAnotherWindow(workspaceHandlingTests.getWindowHandle(), TimeoutConstants.TS_IDE_LOAD_TIMEOUT); }); workspaceHandlingTests.obtainWorkspaceNameFromStartingPage(); @@ -61,8 +61,6 @@ suite(`${stack} test`, async () => { let workbench = new Workbench(); let activityBar = workbench.getActivityBar(); let activityBarControls = await activityBar.getViewControls(); - // let sidebarContent = activityBar.getViewControl(); - // let sidebarViewSections = await sidebarContent.getSections(); Logger.debug(`Editor sections:`); activityBarControls.forEach(async control => { Logger.debug(`${await control.getTitle()}`); diff --git a/tests/e2e/tests/e2e_happy_path/theia/DevWorkspaceHappyPath.spec.ts b/tests/e2e/tests/e2e_happy_path/theia/DevWorkspaceHappyPath.spec.ts index ebff360298c..fc7a2ae899a 100644 --- a/tests/e2e/tests/e2e_happy_path/theia/DevWorkspaceHappyPath.spec.ts +++ b/tests/e2e/tests/e2e_happy_path/theia/DevWorkspaceHappyPath.spec.ts @@ -57,8 +57,6 @@ const SpringAppLocators = { suite('Workspace creation via factory url', async () => { let factoryUrl : string = `${TestConstants.TS_SELENIUM_DEVWORKSPACE_URL}`; - // const workspaceRootFolderName: string = 'src'; - suite('Open factory URL', async () => { // this is DevWorkspace test specific - we create the test ws. using factory instead of chectl test(`Navigating to factory URL`, async () => {