Files
gstack/browse/test/browser-manager-custom-chromium.test.ts
Rocky 834c6db075
Some checks failed
Workflow Lint / actionlint (push) Has been cancelled
Build CI Image / build (push) Has been cancelled
Skill Docs Freshness / check-freshness (push) Has been cancelled
Periodic Evals / build-image (push) Has been cancelled
Periodic Evals / evals (map[file:test/codex-e2e.test.ts name:e2e-codex]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/gemini-e2e.test.ts name:e2e-gemini]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-design.test.ts name:e2e-design]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-plan.test.ts name:e2e-plan]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-qa-bugs.test.ts name:e2e-qa-bugs]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-qa-workflow.test.ts name:e2e-qa-workflow]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-review.test.ts name:e2e-review]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-workflow.test.ts name:e2e-workflow]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-routing-e2e.test.ts name:e2e-routing]) (push) Has been cancelled
Initial import from garrytan/gstack@026751e (main snapshot via local relay)
Source: https://github.com/garrytan/gstack/commit/026751e
2026-05-19 21:18:17 +02:00

68 lines
2.6 KiB
TypeScript

import { describe, test, expect, beforeEach, afterEach } from 'bun:test';
import { isCustomChromium } from '../src/browser-manager';
describe('browser-manager: isCustomChromium', () => {
let origPath: string | undefined;
let origKind: string | undefined;
beforeEach(() => {
origPath = process.env.GSTACK_CHROMIUM_PATH;
origKind = process.env.GSTACK_CHROMIUM_KIND;
});
afterEach(() => {
if (origPath === undefined) delete process.env.GSTACK_CHROMIUM_PATH;
else process.env.GSTACK_CHROMIUM_PATH = origPath;
if (origKind === undefined) delete process.env.GSTACK_CHROMIUM_KIND;
else process.env.GSTACK_CHROMIUM_KIND = origKind;
});
test('GSTACK_CHROMIUM_KIND=custom-extension-baked → true (preferred explicit signal)', () => {
delete process.env.GSTACK_CHROMIUM_PATH;
process.env.GSTACK_CHROMIUM_KIND = 'custom-extension-baked';
expect(isCustomChromium()).toBe(true);
});
test('GSTACK_CHROMIUM_KIND wins even when path is stock Chromium', () => {
process.env.GSTACK_CHROMIUM_PATH = '/usr/bin/chromium';
process.env.GSTACK_CHROMIUM_KIND = 'custom-extension-baked';
expect(isCustomChromium()).toBe(true);
});
test('PascalCase GBrowser in path → true (fallback substring match)', () => {
delete process.env.GSTACK_CHROMIUM_KIND;
process.env.GSTACK_CHROMIUM_PATH = '/Applications/GBrowser.app/Contents/MacOS/GBrowser';
expect(isCustomChromium()).toBe(true);
});
test('lowercase gbrowser in path → true (fallback substring match)', () => {
delete process.env.GSTACK_CHROMIUM_KIND;
process.env.GSTACK_CHROMIUM_PATH = '/Applications/gbrowser-dev.app/Contents/MacOS/GBrowser';
expect(isCustomChromium()).toBe(true);
});
test('both env vars unset → false', () => {
delete process.env.GSTACK_CHROMIUM_PATH;
delete process.env.GSTACK_CHROMIUM_KIND;
expect(isCustomChromium()).toBe(false);
});
test('stock chromium path → false', () => {
delete process.env.GSTACK_CHROMIUM_KIND;
process.env.GSTACK_CHROMIUM_PATH = '/usr/bin/chromium';
expect(isCustomChromium()).toBe(false);
});
test('Playwright bundled chromium path → false', () => {
delete process.env.GSTACK_CHROMIUM_KIND;
process.env.GSTACK_CHROMIUM_PATH = '/Users/me/Library/Caches/ms-playwright/chromium-1234/chrome-mac/Chromium.app/Contents/MacOS/Chromium';
expect(isCustomChromium()).toBe(false);
});
test('GSTACK_CHROMIUM_KIND with unrelated value falls through to path check', () => {
process.env.GSTACK_CHROMIUM_KIND = 'something-else';
process.env.GSTACK_CHROMIUM_PATH = '/usr/bin/chromium';
expect(isCustomChromium()).toBe(false);
});
});