Skip to content

Commit fe6e634

Browse files
committed
feat(puppet): unsupported linux install message
1 parent d064e53 commit fe6e634

File tree

21 files changed

+158
-55
lines changed

21 files changed

+158
-55
lines changed

.github/workflows/lint-and-test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ jobs:
128128
done
129129
130130
- name: Run tests
131-
run: yarn jest --testTimeout=60000
131+
run: yarn jest --testTimeout=60000 --runInBand
132132
working-directory: ./build
133133
env:
134134
SA_SHOW_REPLAY: false

core-interfaces/IBrowserEmulatorClass.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import IBrowserEmulator from './IBrowserEmulator';
22
import IUserAgentOption from './IUserAgentOption';
3+
import IBrowserEngine from './IBrowserEngine';
34

45
export default interface IBrowserEmulatorClass {
56
id: string;
67
roundRobinPercent: number;
7-
engine: { browser: string; executablePath: string; version: string };
8+
engine: IBrowserEngine;
89
new (): IBrowserEmulator;
910
userAgentOptions?: IUserAgentOption[];
1011
}

core-interfaces/IBrowserEngine.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,11 @@ export default interface IBrowserEngine {
22
browser: string;
33
version: string;
44
executablePath: string;
5+
executablePathEnvVar: string;
56
extraLaunchArgs?: string[];
67
}
8+
9+
export type IBrowserEngineConfig = Pick<
10+
IBrowserEngine,
11+
'browser' | 'version' | 'executablePathEnvVar'
12+
>;

emulate-browsers/base/index.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ const { log } = Log(module);
1717

1818
function getEngine(
1919
engine: { browser: string; version: string },
20-
executablePathOverride?: string,
20+
executablePathEnvVar?: string,
2121
): IBrowserEngine {
22-
const engineFetcher = new EngineFetcher(engine.browser, engine.version).toJSON();
23-
24-
if (executablePathOverride) {
25-
engineFetcher.executablePath = executablePathOverride;
26-
}
22+
const engineFetcher = new EngineFetcher(
23+
engine.browser,
24+
engine.version,
25+
executablePathEnvVar,
26+
).toJSON();
2727

2828
log.stats('Browser.getEngine', {
2929
sessionId: null,

emulate-browsers/base/install.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import EngineInstaller from '@secret-agent/puppet/lib/EngineInstaller';
2+
import { IBrowserEngineConfig } from '@secret-agent/core-interfaces/IBrowserEngine';
23

3-
export default function install(engine: { browser: string; version: string }) {
4+
export default function install(engine: IBrowserEngineConfig) {
45
new EngineInstaller(engine)
56
.install()
67
.then(() => {

emulate-browsers/chrome-80/config.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
"id": "chrome-80-0",
55
"name": "chrome",
66
"version": "80.0.3987.162",
7-
"features": ["headless"]
7+
"features": ["headless"],
8+
"executablePathEnvVar": "CHROME_80_BIN"
89
},
910
"marketshare": 0.4
1011
}

emulate-browsers/chrome-80/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ const engineObj = {
3636
@BrowserEmulatorClassDecorator
3737
export default class Chrome80 {
3838
public static id = pkg.name;
39-
public static roundRobinPercent: number = (config as any).marketshare;
39+
public static roundRobinPercent: number = config.marketshare;
4040

41-
public static engine = getEngine(engineObj, process.env.CHROME_80_BIN);
41+
public static engine = getEngine(engineObj, config.browserEngine.executablePathEnvVar);
4242

4343
public static dnsOverTlsConnectOptions = DnsOverTlsProviders.Cloudflare;
4444

emulate-browsers/chrome-80/install.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@ import * as config from './config.json';
44
install({
55
browser: config.browserEngine.name,
66
version: config.browserEngine.version,
7+
executablePathEnvVar: config.browserEngine.executablePathEnvVar,
78
});

emulate-browsers/chrome-81/config.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
"id": "chrome-81-0",
55
"name": "chrome",
66
"version": "81.0.4044.138",
7-
"features": ["headless"]
7+
"features": ["headless"],
8+
"executablePathEnvVar": "CHROME_81_BIN"
89
},
910
"marketshare": 0.4
1011
}

emulate-browsers/chrome-81/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ const engineObj = {
3636
@BrowserEmulatorClassDecorator
3737
export default class Chrome81 {
3838
public static id = pkg.name;
39-
public static roundRobinPercent: number = (config as any).marketshare;
39+
public static roundRobinPercent: number = config.marketshare;
4040

41-
public static engine = getEngine(engineObj, process.env.CHROME_81_BIN);
41+
public static engine = getEngine(engineObj, config.browserEngine.executablePathEnvVar);
4242

4343
public static dnsOverTlsConnectOptions = DnsOverTlsProviders.Cloudflare;
4444

0 commit comments

Comments
 (0)