diff --git a/packages/wxt/e2e/utils.ts b/packages/wxt/e2e/utils.ts index c83499902..7ab18d022 100644 --- a/packages/wxt/e2e/utils.ts +++ b/packages/wxt/e2e/utils.ts @@ -138,6 +138,11 @@ export class TestProject { private generateWxtConfig(inline: InlineConfig): InlineConfig { return { ...inline, + suppressWarnings: { + firefoxDataCollection: true, + firefoxId: true, + ...inline.suppressWarnings, + }, vite: async (...args) => { const inlineVite = (await inline.vite?.(...args)) ?? {}; return vite.mergeConfig( diff --git a/packages/wxt/src/internal-utils/testing/fake-objects.ts b/packages/wxt/src/internal-utils/testing/fake-objects.ts index b9836092b..8be979a72 100644 --- a/packages/wxt/src/internal-utils/testing/fake-objects.ts +++ b/packages/wxt/src/internal-utils/testing/fake-objects.ts @@ -307,7 +307,10 @@ export const fakeResolvedConfig = fakeObjectCreator(() => { hooks: {}, vite: () => ({}), plugins: [], - suppressWarnings: {}, + suppressWarnings: { + firefoxDataCollection: true, + firefoxId: true, + }, }; }); diff --git a/packages/wxt/src/internal/__tests__/manifest.test.ts b/packages/wxt/src/internal/__tests__/manifest.test.ts index ca4f56a52..2230a846d 100644 --- a/packages/wxt/src/internal/__tests__/manifest.test.ts +++ b/packages/wxt/src/internal/__tests__/manifest.test.ts @@ -2233,6 +2233,47 @@ describe('Manifest Utils', () => { }); }); + describe('data_collection_permissions', () => { + it('should warn when building for Firefox without data_collection_permissions', async () => { + setFakeWxt({ + config: { + browser: 'firefox', + suppressWarnings: { + firefoxDataCollection: false, + firefoxId: true, + }, + }, + }); + + await generateManifest([], fakeBuildOutput()); + + expect(wxt.logger.warnOnce).toHaveBeenCalledWith( + expect.stringContaining('data_collection_permissions'), + ); + }); + }); + + describe('firefox extension id', () => { + it('should warn when building for Firefox without an extension id', async () => { + setFakeWxt({ + config: { + browser: 'firefox', + command: 'build', + suppressWarnings: { + firefoxDataCollection: true, + firefoxId: false, + }, + }, + }); + + await generateManifest([], fakeBuildOutput()); + + expect(wxt.logger.warnOnce).toHaveBeenCalledWith( + expect.stringContaining('Firefox requires extension ID'), + ); + }); + }); + describe('stripPathFromMatchPattern', () => { it.each([ ['', ''],