diff --git a/test/smoke/package.json b/test/smoke/package.json index 292850b6a0e..9ef1a50f778 100644 --- a/test/smoke/package.json +++ b/test/smoke/package.json @@ -18,6 +18,7 @@ "typescript": "^2.2.2", "rimraf": "^2.6.1", "commander": "^2.9.0", - "simple-git": "^1.73.0" + "simple-git": "^1.73.0", + "strip-json-comments": "^2.0.1" } } diff --git a/test/smoke/src/areas/javascript-debug.ts b/test/smoke/src/areas/javascript-debug.ts index 948594945d7..7326e9be1a2 100644 --- a/test/smoke/src/areas/javascript-debug.ts +++ b/test/smoke/src/areas/javascript-debug.ts @@ -4,6 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { SpectronApplication } from '../spectron/application'; +var stripJsonComments = require('strip-json-comments'); export class JavaScriptDebug { private readonly sidebarSelector = '.margin-view-overlays'; @@ -17,14 +18,20 @@ export class JavaScriptDebug { } public async pressConfigureLaunchJson(): Promise { - await this.spectron.waitFor(this.spectron.client.click, 'ul[aria-label="Debug actions"] .action-label.icon.debug-action.configure'); + try { + await this.spectron.waitFor(this.spectron.client.click, 'ul[aria-label="Debug actions"] .action-label.icon.debug-action.configure'); + } catch (e) { + return Promise.reject('Clicking on debug configuration gear failed.'); + } await this.spectron.wait(); await this.spectron.client.keys(['ArrowDown', 'NULL', 'Enter']); return this.spectron.wait(); } - public getProgramConfigValue(): Promise { - return this.spectron.client.getText('.view-lines>:nth-child(11) .mtk7'); + public async getProgramConfigValue(): Promise { + const lines = stripJsonComments(await this.spectron.client.getText('.view-lines')); + const json = JSON.parse(lines); + return json.configurations[0].program; } public setBreakpointOnLine(lineNumber: number): Promise { diff --git a/test/smoke/src/tests/javascript-debug.ts b/test/smoke/src/tests/javascript-debug.ts index 801543f539a..8d647a68b98 100644 --- a/test/smoke/src/tests/javascript-debug.ts +++ b/test/smoke/src/tests/javascript-debug.ts @@ -31,7 +31,7 @@ export function testJavaScriptDebug() { await jsDebug.openDebugViewlet(); await jsDebug.pressConfigureLaunchJson(); const value = await jsDebug.getProgramConfigValue(); - process.platform === 'win32' ? assert.equal(value, '"${workspaceRoot}\\\\bin\\\\www"') : assert.equal(value, '"${workspaceRoot}/bin/www"'); + process.platform === 'win32' ? assert.equal(value, '${workspaceRoot}\\bin\\www') : assert.equal(value, '${workspaceRoot}/bin/www'); }); it(`can set a breakpoint and verify if it's set`, async function () {