Skip to content

Commit

Permalink
fix(testing): Stub chrome and browser globals with fakeBrowser
Browse files Browse the repository at this point in the history
…automatically
  • Loading branch information
aklinker1 committed Aug 18, 2024
1 parent 2e1bd6e commit 4570d23
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions packages/wxt/src/core/builders/vite/plugins/extensionApiMock.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ import { ResolvedConfig } from '../../../../types';
* `npm list` and inline them automatically.
*/
export function extensionApiMock(config: ResolvedConfig): vite.PluginOption {
const virtualSetupModule = 'virtual:wxt-setup';
const resolvedVirtualSetupModule = '\0' + virtualSetupModule;

return {
name: 'wxt:extension-api-mock',
config() {
Expand All @@ -19,6 +22,9 @@ export function extensionApiMock(config: ResolvedConfig): vite.PluginOption {
'dist/virtual/mock-browser',
);
return {
test: {
setupFiles: [virtualSetupModule],
},
resolve: {
alias: [
{ find: 'webextension-polyfill', replacement },
Expand All @@ -33,5 +39,19 @@ export function extensionApiMock(config: ResolvedConfig): vite.PluginOption {
},
};
},
resolveId(id) {
if (id.endsWith(virtualSetupModule)) return resolvedVirtualSetupModule;
},
load(id) {
if (id === resolvedVirtualSetupModule) return setupTemplate;
},
};
}

const setupTemplate = `
import { vi } from 'vitest';
import { fakeBrowser } from 'wxt/testing';
vi.stubGlobal("chrome", fakeBrowser);
vi.stubGlobal("browser", fakeBrowser);
`;

0 comments on commit 4570d23

Please sign in to comment.