Skip to content

Commit 345a25d

Browse files
authoredJan 4, 2024
fix(browser): avoid safaridriver collision (#4863)
1 parent 1efc29b commit 345a25d

File tree

4 files changed

+6
-12
lines changed

4 files changed

+6
-12
lines changed
 

‎packages/browser/package.json

-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@
5151
},
5252
"peerDependencies": {
5353
"playwright": "*",
54-
"safaridriver": "*",
5554
"vitest": "^1.0.0",
5655
"webdriverio": "*"
5756
},

‎packages/browser/src/node/providers/webdriver.ts

-10
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ export class WebdriverBrowserProvider implements BrowserProvider {
1414
public name = 'webdriverio'
1515

1616
private cachedBrowser: WebdriverIO.Browser | null = null
17-
private stopSafari: () => void = () => {}
1817
private browser!: WebdriverBrowser
1918
private ctx!: WorkspaceProject
2019

@@ -39,14 +38,6 @@ export class WebdriverBrowserProvider implements BrowserProvider {
3938
if (this.browser === 'safari') {
4039
if (options.headless)
4140
throw new Error('You\'ve enabled headless mode for Safari but it doesn\'t currently support it.')
42-
43-
const safaridriver = await import('safaridriver')
44-
safaridriver.start({ diagnose: true })
45-
this.stopSafari = () => safaridriver.stop()
46-
47-
process.on('beforeExit', () => {
48-
safaridriver.stop()
49-
})
5041
}
5142

5243
const { remote } = await import('webdriverio')
@@ -97,7 +88,6 @@ export class WebdriverBrowserProvider implements BrowserProvider {
9788

9889
async close() {
9990
await Promise.all([
100-
this.stopSafari(),
10191
this.cachedBrowser?.sessionId ? this.cachedBrowser?.deleteSession?.() : null,
10292
])
10393
// TODO: right now process can only exit with timeout, if we use browser

‎test/browser/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"test": "pnpm run test:webdriverio && pnpm run test:playwright",
77
"test:webdriverio": "PROVIDER=webdriverio node --test specs/",
88
"test:playwright": "PROVIDER=playwright node --test specs/",
9+
"test:safaridriver": "PROVIDER=webdriverio BROWSER=safari node --test specs/",
910
"coverage": "vitest --coverage.enabled --coverage.provider=istanbul --browser.headless=yes"
1011
},
1112
"devDependencies": {

‎test/browser/specs/runner.test.mjs

+5-1
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,12 @@ import test from 'node:test'
44
import { execa } from 'execa'
55

66
const browser = process.env.BROWSER || (process.env.PROVIDER === 'playwright' ? 'chromium' : 'chrome')
7+
const argv = ['vitest', '--run', `--browser.name=${browser}`]
78

8-
const { stderr, stdout } = await execa('npx', ['vitest', '--run', `--browser.name=${browser}`, '--browser.headless'], {
9+
if (browser !== 'safari')
10+
argv.push('--browser.headless')
11+
12+
const { stderr, stdout } = await execa('npx', argv, {
913
env: {
1014
...process.env,
1115
CI: 'true',

0 commit comments

Comments
 (0)
Please sign in to comment.