import { describe, expect, test } from "bun:test"; import { existsSync } from "node:fs"; import { join } from "node:path"; const extensionDir = join(import.meta.dir, "extension"); const manifest = await Bun.file(join(extensionDir, "manifest.json")).json(); describe("manifest.json", () => { test("est en Manifest V3", () => { expect(manifest.manifest_version).toBe(3); }); test("déclare background.js comme script d'arrière-plan", () => { expect(manifest.background.scripts).toContain("background.js"); }); test("demande les host_permissions des deux sources", () => { expect(manifest.host_permissions).toEqual([ "https://atelier-huit.frama.space/*", "https://www.ville-cugnaux.fr/*", ]); }); test("ne définit PAS default_popup (sinon onClicked devient muet)", () => { expect(manifest.action.default_popup).toBeUndefined(); }); test("porte un identifiant gecko", () => { expect(manifest.browser_specific_settings.gecko.id).toBeDefined(); }); }); describe("ressources référencées", () => { test("background.js existe", () => { expect(existsSync(join(extensionDir, "background.js"))).toBe(true); }); test("liste.html existe", () => { expect(existsSync(join(extensionDir, "liste.html"))).toBe(true); }); test("l'icône référencée existe", () => { expect(existsSync(join(extensionDir, manifest.action.default_icon))).toBe(true); }); });