diff --git a/packages/runner/src/__tests__/options.test.ts b/packages/runner/src/__tests__/options.test.ts index 23ec3e4ab..86c9ca119 100644 --- a/packages/runner/src/__tests__/options.test.ts +++ b/packages/runner/src/__tests__/options.test.ts @@ -25,6 +25,7 @@ describe('Options', () => { describe('extensionDir', () => { it('should default to the current working directory', async () => { const actual = await resolveRunOptions({}); + expect(actual).toMatchObject>({ extensionDir: process.cwd(), }); @@ -34,17 +35,27 @@ describe('Options', () => { const actual = await resolveRunOptions({ extensionDir: './path/to/extension', }); + expect(actual).toMatchObject>({ extensionDir: resolve(process.cwd(), './path/to/extension'), }); }); + + it('should use absolute paths as-is', async () => { + const actual = await resolveRunOptions({ + extensionDir: '/abs/path/to/extension2', + }); + + expect(actual).toMatchObject>({ + extensionDir: resolve('/abs/path/to/extension2'), + }); + }); }); describe('target', () => { it('should be "chrome" by default', async () => { - const actual = await resolveRunOptions({ - extensionDir: 'path/to/extension', - }); + const actual = await resolveRunOptions({}); + expect(actual).toMatchObject>({ target: 'chrome', }); @@ -52,12 +63,12 @@ describe('Options', () => { it('should be what is passed in', async () => { const actual = await resolveRunOptions({ - extensionDir: 'path/to/extension', target: 'custom', browserBinaries: { custom: '/path/to/custom/browser', }, }); + expect(actual).toMatchObject>({ target: 'custom', }); @@ -65,9 +76,9 @@ describe('Options', () => { it('should throw an error if the target binary could not be found', async () => { const actual = resolveRunOptions({ - extensionDir: 'path/to/extension', target: 'custom', }); + await expect(actual).rejects.toThrow('Could not find "custom" binary.'); }); }); @@ -83,7 +94,6 @@ describe('Options', () => { ? 'C:\\path\\to\\custom\\browser.exe' : path; const actual = await resolveRunOptions({ - extensionDir: 'path/to/extension', target: 'custom', browserBinaries: { custom: path, @@ -98,9 +108,11 @@ describe('Options', () => { describe('chromiumArgs', () => { it('should log a warning when --user-data-dir is passed in', async () => { const warnSpy = vi.spyOn(console, 'warn'); + await resolveRunOptions({ chromiumArgs: ['--user-data-dir=some/custom/path'], }); + expect(warnSpy).toBeCalledTimes(1); expect(warnSpy).toHaveBeenCalledWith( expect.stringContaining( @@ -111,9 +123,11 @@ describe('Options', () => { it('should log a warning when --remote-debugging-port is passed in', async () => { const warnSpy = vi.spyOn(console, 'warn'); + await resolveRunOptions({ chromiumArgs: ['--remote-debugging-port=9222'], }); + expect(warnSpy).toBeCalledTimes(1); expect(warnSpy).toHaveBeenCalledWith( expect.stringContaining( @@ -126,6 +140,7 @@ describe('Options', () => { const actual = await resolveRunOptions({ chromiumArgs: ['--window-size=1920,1080'], }); + expect(actual.chromiumArgs).toEqual([ // Defaults '--disable-features=Translate,OptimizationHints,MediaRouter,DialMediaRouteProvider,CalculateNativeWinOcclusion,InterestFeedContentSuggestions,CertificateTransparencyComponentUpdater,AutofillServerCommunication,PrivacySandboxSettings4', @@ -161,9 +176,11 @@ describe('Options', () => { describe('firefoxArgs', () => { it('should log a warning when --profile is passed in', async () => { const warnSpy = vi.spyOn(console, 'warn'); + await resolveRunOptions({ firefoxArgs: ['--profile=some/custom/path'], }); + expect(warnSpy).toBeCalledTimes(1); expect(warnSpy).toHaveBeenCalledWith( expect.stringContaining('Custom Firefox --profile argument ignored'), @@ -172,9 +189,11 @@ describe('Options', () => { it('should log a warning when --remote-debugging-port is passed in', async () => { const warnSpy = vi.spyOn(console, 'warn'); + await resolveRunOptions({ firefoxArgs: ['--remote-debugging-port=9222'], }); + expect(warnSpy).toBeCalledTimes(1); expect(warnSpy).toHaveBeenCalledWith( expect.stringContaining( @@ -187,6 +206,7 @@ describe('Options', () => { const actual = await resolveRunOptions({ firefoxArgs: ['--window-size=1920,1080'], }); + expect(actual.firefoxArgs).toEqual([ // Defaults '--new-instance',