diff --git a/examples/01-file_upload.js b/examples/01-file_upload.js index 71a021fb4..d25598a7b 100644 --- a/examples/01-file_upload.js +++ b/examples/01-file_upload.js @@ -1,6 +1,6 @@ const { goto, fileField, button, above, attach, click, text } = require('taiko'), path = require('path'), - { openBrowserAndStartScreencast, closeBrowserAndStopScreencast } = require('./browserLauncher'), + { openBrowserAndStartScreencast, closeBrowserAndStopScreencast } = require('./browser/launcher'), expect = require('chai').expect; (async () => { diff --git a/examples/02-file_download.js b/examples/02-file_download.js index 398b144d7..81239ea9e 100644 --- a/examples/02-file_download.js +++ b/examples/02-file_download.js @@ -1,7 +1,7 @@ const { goto, client, click } = require('taiko'), path = require('path'), fs = require('fs'), - { openBrowserAndStartScreencast, closeBrowserAndStopScreencast } = require('./browserLauncher'), + { openBrowserAndStartScreencast, closeBrowserAndStopScreencast } = require('./browser/launcher'), expect = require('chai').expect; (async () => { diff --git a/examples/03-work-with-frames.js b/examples/03-work-with-frames.js index 105061e75..c6c882950 100644 --- a/examples/03-work-with-frames.js +++ b/examples/03-work-with-frames.js @@ -1,6 +1,6 @@ const { goto, text } = require('taiko'), path = require('path'), - { openBrowserAndStartScreencast, closeBrowserAndStopScreencast } = require('./browserLauncher'), + { openBrowserAndStartScreencast, closeBrowserAndStopScreencast } = require('./browser/launcher'), expect = require('chai').expect; (async () => { diff --git a/examples/04-windows-tabs.js b/examples/04-windows-tabs.js index 1b802d9f5..d8916cc56 100644 --- a/examples/04-windows-tabs.js +++ b/examples/04-windows-tabs.js @@ -1,6 +1,6 @@ const { goto, click, title, closeTab, currentURL, text } = require('taiko'), path = require('path'), - { openBrowserAndStartScreencast, closeBrowserAndStopScreencast } = require('./browserLauncher'), + { openBrowserAndStartScreencast, closeBrowserAndStopScreencast } = require('./browser/launcher'), expect = require('chai').expect; (async () => { diff --git a/examples/05-dropdown.js b/examples/05-dropdown.js index fc64042b7..368f64f06 100644 --- a/examples/05-dropdown.js +++ b/examples/05-dropdown.js @@ -1,6 +1,6 @@ const { goto, dropDown } = require('taiko'), path = require('path'), - { openBrowserAndStartScreencast, closeBrowserAndStopScreencast } = require('./browserLauncher'), + { openBrowserAndStartScreencast, closeBrowserAndStopScreencast } = require('./browser/launcher'), expect = require('chai').expect; (async () => { diff --git a/examples/06-basic-auth.js b/examples/06-basic-auth.js index 9ba199fa7..e1d026b21 100644 --- a/examples/06-basic-auth.js +++ b/examples/06-basic-auth.js @@ -1,6 +1,6 @@ const { goto, text } = require('taiko'), path = require('path'), - { openBrowserAndStartScreencast, closeBrowserAndStopScreencast } = require('./browserLauncher'), + { openBrowserAndStartScreencast, closeBrowserAndStopScreencast } = require('./browser/launcher'), expect = require('chai').expect; (async () => { diff --git a/examples/07-dynamic-loading.js b/examples/07-dynamic-loading.js index b859f6b5b..2da15249d 100644 --- a/examples/07-dynamic-loading.js +++ b/examples/07-dynamic-loading.js @@ -1,6 +1,6 @@ const { goto, click, text } = require('taiko'), path = require('path'), - { openBrowserAndStartScreencast, closeBrowserAndStopScreencast } = require('./browserLauncher'), + { openBrowserAndStartScreencast, closeBrowserAndStopScreencast } = require('./browser/launcher'), expect = require('chai').expect; (async () => { diff --git a/examples/08-contenteditable.js b/examples/08-contenteditable.js index bc9ab9ef8..bdc6bda92 100644 --- a/examples/08-contenteditable.js +++ b/examples/08-contenteditable.js @@ -1,5 +1,5 @@ const { goto, below, textBox, write, into } = require('taiko'), - { openBrowserAndStartScreencast, closeBrowserAndStopScreencast } = require('./browserLauncher'), + { openBrowserAndStartScreencast, closeBrowserAndStopScreencast } = require('./browser/launcher'), path = require('path'), expect = require('chai').expect; const cwd = process.cwd(); diff --git a/examples/README.md b/examples/README.md index 10abfad59..703ac6560 100644 --- a/examples/README.md +++ b/examples/README.md @@ -40,7 +40,7 @@ This folder contains samples inspired by some of selenium tips published by [ele `npm test` runs the examples under a headless chromium. -> **Note:** The examples use `openBrowserAndStartScreencast` and `closeBrowserAndStopScreencast` from [`browserLauncher`](browserLauncher.js) instead of `openBrowser` and `closeBrowser` directly. This is to capture screen recordings. The `browserLauncher` methods can be substituted with `openBrowser` and `closeBrowser` if there is no need for screencast capture. +> **Note:** The examples use `openBrowserAndStartScreencast` and `closeBrowserAndStopScreencast` from [`browserLauncher`](browser/launcher.js) instead of `openBrowser` and `closeBrowser` directly. This is to capture screen recordings. The `browserLauncher` methods can be substituted with `openBrowser` and `closeBrowser` if there is no need for screencast capture. ### Run Options diff --git a/examples/runner.js b/examples/runner.js index 2e5e87d96..02a14c42d 100644 --- a/examples/runner.js +++ b/examples/runner.js @@ -25,7 +25,7 @@ var server = app.listen(3000, async () => { var examples = glob .sync('*.js') .filter( - (f) => __filename !== path.resolve(f) && 'browserLauncher.js' !== f && f.startsWith(prefix), + (f) => __filename !== path.resolve(f) && 'browser/launcher.js' !== f && f.startsWith(prefix), ) .map((f) => { return { file: f, task: () => run(f) }; diff --git a/lib/browser/browser.js b/lib/browser/browser.js index 20c1ca0e9..c60da42d7 100644 --- a/lib/browser/browser.js +++ b/lib/browser/browser.js @@ -23,10 +23,10 @@ const fs = require('fs-extra'); const { readdir, access, removeSync, existsSync } = fs; const { join, basename } = require('path'); const { promisify } = require('util'); -const { helper, assert } = require('./helper'); +const { helper, assert } = require('../helper'); const { createInterface } = require('readline'); const { parse } = require('url'); -const BrowserMetadata = require('./browser/metadata'); +const BrowserMetadata = require('./metadata'); const supportedPlatforms = ['mac-arm64', 'mac-x64', 'linux', 'win32', 'win64']; const revisionInfo = new BrowserMetadata().revisionInfo(); diff --git a/lib/browser/launcher.js b/lib/browser/launcher.js index c73457dfd..f14f453ca 100644 --- a/lib/browser/launcher.js +++ b/lib/browser/launcher.js @@ -2,8 +2,8 @@ const path = require('path'); const fs = require('fs-extra'); const os = require('os'); const childProcess = require('child_process'); -const { setBrowserOptions, defaultConfig } = require('./config'); -const { eventHandler } = require('./eventBus'); +const { setBrowserOptions, defaultConfig } = require('../config'); +const { eventHandler } = require('../eventBus'); const util = require('util'); const mkdtempAsync = util.promisify(fs.mkdtemp); const writeFileAsync = util.promisify(fs.writeFile); diff --git a/lib/browser/metadata.js b/lib/browser/metadata.js index 2bf44fae1..d0bcce5cb 100644 --- a/lib/browser/metadata.js +++ b/lib/browser/metadata.js @@ -71,7 +71,7 @@ class BrowserMetadata { return 'chrome-linux'; } if (this._platform.includes('mac')) { - return 'chrome-mac'; + return `chrome-${this._platform}`; } if (this._platform === 'win32' || this.platform === 'win64') { // Windows archive name changed at r591479. @@ -105,10 +105,10 @@ class BrowserMetadata { executablePath = path.join( folderPath, this.archiveName(), - 'Chromium.app', + 'Google Chrome for Testing.app', 'Contents', 'MacOS', - 'Chromium', + 'Google Chrome for Testing', ); } else if (this._platform === 'linux') { executablePath = path.join(folderPath, this.archiveName(), 'chrome'); diff --git a/lib/connection.js b/lib/connection.js index e06a314f4..e4d394ed6 100644 --- a/lib/connection.js +++ b/lib/connection.js @@ -2,7 +2,7 @@ const { defaultConfig } = require('./config'); const { eventHandler } = require('./eventBus'); const { isPromise } = require('./helper'); const { logEvent } = require('./logger'); -const { errorMessageForBrowserProcessCrash, closeBrowser } = require('./browserLauncher'); +const { errorMessageForBrowserProcessCrash, closeBrowser } = require('./browser/launcher'); const targetHandler = require('./handlers/targetHandler'); const pageHandler = require('./handlers/pageHandler'); const emulationHandler = require('./handlers/emulationHandler'); diff --git a/lib/taiko.js b/lib/taiko.js index 91b3e0d4d..ea6241ee8 100644 --- a/lib/taiko.js +++ b/lib/taiko.js @@ -31,7 +31,7 @@ const childProcess = require('child_process'); const crypto = require('crypto'); const { eventHandler, eventRegexMap } = require('./eventBus'); const { highlightElement } = require('./elements/elementHelper'); -const { launchBrowser } = require('./browserLauncher'); +const { launchBrowser } = require('./browser/launcher'); const { connect_to_cri, closeConnection, diff --git a/package-lock.json b/package-lock.json index 6820ebeee..cf48ae8f4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "license": "MIT", "dependencies": { "@babel/parser": "^7.20.7", - "chrome-remote-interface": "^0.31.3", + "chrome-remote-interface": "^0.33.0", "commander": "^9.5.0", "debug": "^4.3.4", "devtools-protocol": "0.0.1082910", @@ -2646,9 +2646,9 @@ } }, "node_modules/chrome-remote-interface": { - "version": "0.31.3", - "resolved": "https://registry.npmjs.org/chrome-remote-interface/-/chrome-remote-interface-0.31.3.tgz", - "integrity": "sha512-NTwb1YNPHXLTus1RjqsLxJmdViKwKJg/lrFEcM6pbyQy04Ow2QKWHXyPpxzwE+dFsJghWuvSAdTy4W0trluz1g==", + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/chrome-remote-interface/-/chrome-remote-interface-0.33.0.tgz", + "integrity": "sha512-tv/SgeBfShXk43fwFpQ9wnS7mOCPzETnzDXTNxCb6TqKOiOeIfbrJz+2NAp8GmzwizpKa058wnU1Te7apONaYg==", "dependencies": { "commander": "2.11.x", "ws": "^7.2.0" @@ -16439,9 +16439,9 @@ "dev": true }, "chrome-remote-interface": { - "version": "0.31.3", - "resolved": "https://registry.npmjs.org/chrome-remote-interface/-/chrome-remote-interface-0.31.3.tgz", - "integrity": "sha512-NTwb1YNPHXLTus1RjqsLxJmdViKwKJg/lrFEcM6pbyQy04Ow2QKWHXyPpxzwE+dFsJghWuvSAdTy4W0trluz1g==", + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/chrome-remote-interface/-/chrome-remote-interface-0.33.0.tgz", + "integrity": "sha512-tv/SgeBfShXk43fwFpQ9wnS7mOCPzETnzDXTNxCb6TqKOiOeIfbrJz+2NAp8GmzwizpKa058wnU1Te7apONaYg==", "requires": { "commander": "2.11.x", "ws": "^7.2.0" diff --git a/package.json b/package.json index 8a08319e6..3fce52768 100644 --- a/package.json +++ b/package.json @@ -30,17 +30,9 @@ "type": "git", "url": "https://github.com/getgauge/taiko" }, - "keywords": [ - "headless", - "headless-chrome", - "headless-testing", - "headless-browser" - ], + "keywords": ["headless", "headless-chrome", "headless-testing", "headless-browser"], "lint-staged": { - "**/*.{js,ts}": [ - "npm run lint", - "git add" - ] + "**/*.{js,ts}": ["npm run lint", "git add"] }, "taiko": { "chromium_revision": "1083080", @@ -84,7 +76,7 @@ "license": "MIT", "dependencies": { "@babel/parser": "^7.20.7", - "chrome-remote-interface": "^0.31.3", + "chrome-remote-interface": "^0.33.0", "commander": "^9.5.0", "debug": "^4.3.4", "devtools-protocol": "0.0.1082910", diff --git a/test/unit-tests/browserLauncher.test.js b/test/unit-tests/browserLauncher.test.js index a3e7c3679..e504ed0b3 100644 --- a/test/unit-tests/browserLauncher.test.js +++ b/test/unit-tests/browserLauncher.test.js @@ -8,10 +8,10 @@ const { eventHandler } = require('../../lib/eventBus'); describe('OpenBrowser', () => { let browserLauncher; before(() => { - browserLauncher = rewire('../../lib/browserLauncher'); + browserLauncher = rewire('../../lib/browser/launcher'); }); after(() => { - browserLauncher = rewire('../../lib/browserLauncher'); + browserLauncher = rewire('../../lib/browser/launcher'); }); describe('should set args', async () => { @@ -40,7 +40,7 @@ describe('OpenBrowser', () => { }); afterEach(() => { - browserLauncher = rewire('../../lib/browserLauncher'); + browserLauncher = rewire('../../lib/browser/launcher'); }); it('should emit browserCrashed event when chrome process crashes', async () => {