UNPKG

@vscode/js-debug-browsers

Version:

Browser launch and discovery logic used in VS Code's JavaScript Debugger

96 lines 4.61 kB
"use strict"; /*--------------------------------------------------------- * Copyright (C) Microsoft Corporation. All rights reserved. *--------------------------------------------------------*/ Object.defineProperty(exports, "__esModule", { value: true }); const sinon_1 = require("sinon"); const chai_1 = require("chai"); const darwinEdge_1 = require("./darwinEdge"); describe('darwin: edge', () => { const lsreturn = [ '/Applications/Microsoft Edge Beta.app', ' /Applications/Microsoft Edge Dev.app/Contents/Frameworks/Microsoft Edge Framework.framework/Versions/77.0.218.4/Helpers/Microsoft Edge Helper.app', ' /Applications/Microsoft Edge Dev.app/Contents/Frameworks/Microsoft Edge Framework.framework/Versions/77.0.197.1/Helpers/Microsoft Edge Helper.app', ' /Applications/Microsoft Edge Dev.app/Contents/Frameworks/Microsoft Edge Framework.framework/Versions/77.0.223.0/Helpers/Microsoft Edge Helper.app', ' /Applications/Microsoft Edge Dev.app', ' /Applications/Microsoft Edge Beta.localized/Microsoft Edge Beta.app', ' /Applications/Microsoft Edge Beta.app', ' /Applications/Microsoft Edge Dev.app/Contents/Frameworks/Microsoft Edge Framework.framework/Versions/77.0.211.2/Helpers/Microsoft Edge Helper.app', ' /Applications/Microsoft Edge Dev.app/Contents/Frameworks/Microsoft Edge Framework.framework/Versions/77.0.211.3/Helpers/Microsoft Edge Helper.app', ' /Applications/Microsoft Edge Beta.app/Contents/Frameworks/Microsoft Edge Framework.framework/Versions/79.0.309.65/Helpers/Microsoft Edge Helper.app', ' /Applications/Microsoft Edge Canary.app', ' /Applications/Microsoft Edge Beta.app', ]; const setup = (options) => { const execa = { command: (0, sinon_1.stub)().resolves({ stdout: options.lsreturn.join('\n') }), }; const fs = { access: (path) => { if (!options.pathsThatExist.includes(path)) { throw new Error('no access here!'); } }, }; const finder = new darwinEdge_1.DarwinEdgeBrowserFinder({ EDGE_PATH: '/custom/path' }, fs, execa); return finder; }; it('does not return when paths dont exist', async () => { (0, chai_1.expect)(await setup({ lsreturn, pathsThatExist: [], }).findAll()).to.be.empty; }); it('returns and orders correctly', async () => { (0, chai_1.expect)(await setup({ lsreturn, pathsThatExist: [ '/custom/path/Contents/MacOS/Microsoft Edge Dev', '/Applications/Microsoft Edge Beta.app/Contents/MacOS/Microsoft Edge Beta', '/Applications/Microsoft Edge Dev.app/Contents/MacOS/Microsoft Edge Dev', '/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge', ], }).findAll()).to.deep.equal([ { path: '/custom/path/Contents/MacOS/Microsoft Edge Dev', quality: "custom" /* Custom */, }, { path: '/Applications/Microsoft Edge Dev.app/Contents/MacOS/Microsoft Edge Dev', quality: "dev" /* Dev */, }, { path: '/Applications/Microsoft Edge Beta.app/Contents/MacOS/Microsoft Edge Beta', quality: "beta" /* Beta */, }, { path: '/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge', quality: "stable" /* Stable */, }, ]); }); it('finds well-known paths', async () => { const s = setup({ lsreturn, pathsThatExist: [ '/custom/path/Contents/MacOS/Microsoft Edge Dev', '/Applications/Microsoft Edge Beta.app/Contents/MacOS/Microsoft Edge Beta', '/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge', ], }); let calls = 0; (0, chai_1.expect)(await s.findWhere((exe) => { calls++; return exe.quality === "stable" /* Stable */; })).to.deep.equal({ path: '/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge', quality: "stable" /* Stable */, }); (0, chai_1.expect)(calls).to.equal(1); (0, chai_1.expect)(await s.findWhere((exe) => { calls++; return exe.quality === "canary" /* Canary */; })).to.be.undefined; }); }); //# sourceMappingURL=darwinEdge.test.js.map