diff --git a/tests/e2e/driver/CheReporter.ts b/tests/e2e/driver/CheReporter.ts index 72030d5ba2..3fe5cc8f83 100644 --- a/tests/e2e/driver/CheReporter.ts +++ b/tests/e2e/driver/CheReporter.ts @@ -18,6 +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, AskForConfirmationType } from '../utils/PreferencesHandler'; const e2eContainer = inversifyConfig.e2eContainer; const driver: IDriver = e2eContainer.get(TYPES.Driver); @@ -26,6 +27,7 @@ const screenCatcher: ScreenCatcher = e2eContainer.get(CLASSES.ScreenCatcher); let methodIndex: number = 0; let deleteScreencast: boolean = true; let testWorkspaceUtil: ITestWorkspaceUtil = e2eContainer.get(TYPES.WorkspaceUtil); +let preferencesHalder: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler); class CheReporter extends mocha.reporters.Spec { constructor(runner: mocha.Runner, options: mocha.MochaOptions) { @@ -65,6 +67,7 @@ class CheReporter extends mocha.reporters.Spec { console.log(launchInformation); rm.sync(TestConstants.TS_SELENIUM_REPORT_FOLDER); + preferencesHalder.setConfirmExit(AskForConfirmationType.never); }); runner.on('test', async function (test: mocha.Test) { diff --git a/tests/e2e/testsLibrary/CodeExecutionTests.ts b/tests/e2e/testsLibrary/CodeExecutionTests.ts index 3cd1c8c8db..e947ced59e 100644 --- a/tests/e2e/testsLibrary/CodeExecutionTests.ts +++ b/tests/e2e/testsLibrary/CodeExecutionTests.ts @@ -11,7 +11,6 @@ import { CLASSES, Terminal, TopMenu, Ide, DialogWindow, DriverHelper } from '..'; import { e2eContainer } from '../inversify.config'; import Axios from 'axios'; -import https from 'https'; const terminal: Terminal = e2eContainer.get(CLASSES.Terminal); const topMenu: TopMenu = e2eContainer.get(CLASSES.TopMenu); @@ -43,8 +42,7 @@ export function runTaskWithDialogShellDjangoWorkaround(taskName: string, expecte await dialogWindow.waitDialogDissappearance(); await driverHelper.getDriver().wait(async () => { try { - const agent = new https.Agent({ rejectUnauthorized: false }); - const res = await Axios.get(augmentedPreviewUrl, { httpsAgent: agent }); + const res = await Axios.get(augmentedPreviewUrl); if (res.status === 200) { return true; } } catch (error) { await driverHelper.wait(1_000); } }, timeout); diff --git a/tests/e2e/utils/PreferencesHandler.ts b/tests/e2e/utils/PreferencesHandler.ts index 3947148739..6e165d68e6 100644 --- a/tests/e2e/utils/PreferencesHandler.ts +++ b/tests/e2e/utils/PreferencesHandler.ts @@ -4,6 +4,17 @@ import { Logger } from './Logger'; import { CLASSES } from '../inversify.types'; import { CheApiRequestHandler } from './requestHandlers/CheApiRequestHandler'; +export enum TerminalRendererType { + canvas = 'canvas', + dom = 'dom' +} + +export enum AskForConfirmationType { + never = 'never', + ifRquired = 'ifRequired', + always = 'always' +} + @injectable() export class PreferencesHandler { @@ -13,21 +24,34 @@ export class PreferencesHandler { /** * Works properly only if set before workspace startup. */ - public async setTerminalType(type: string) { + public async setTerminalType(type: TerminalRendererType) { Logger.debug('PreferencesHandler.setTerminalToDom'); + await this.setPreference('terminal.integrated.rendererType', type); + } + + /** + * + * @param askForConfirmation possible values are "never", "ifRequired" and "always" + */ + public async setConfirmExit(askForConfirmation: AskForConfirmationType) { + Logger.debug(`PreferencesHandler.setConfirmExit to ${askForConfirmation}`); + await this.setPreference(`application.confirmExit`, askForConfirmation); + } + + private async setPreference(attribute: string, value: string) { + Logger.debug(`PreferencesHandler.setPreferences ${attribute} to ${value}`); const response = await this.requestHandler.get('api/preferences'); - let userPref = response.data; + const userPref = response.data; try { - let theiaPref = JSON.parse(userPref['theia-user-preferences']); - theiaPref['terminal.integrated.rendererType'] = type; + const theiaPref = JSON.parse(userPref['theia-user-preferences']); + theiaPref[attribute] = value; userPref['theia-user-preferences'] = JSON.stringify(theiaPref); this.requestHandler.post('api/preferences', userPref); } catch (e) { // setting terminal before running a workspace, so no theia preferences are set - let theiaPref = `{ "terminal.integrated.rendererType":"${type}" }`; + const theiaPref = `{ "${attribute}":"${value}" }`; userPref['theia-user-preferences'] = JSON.stringify(JSON.parse(theiaPref)); this.requestHandler.post('api/preferences', userPref); } - } }