const __vite_ssr_import_0__ = await __vite_ssr_import__("node:fs", {"importedNames":["readFileSync"]});
const __vite_ssr_import_1__ = await __vite_ssr_import__("node:vm", {"importedNames":["runInNewContext"]});
const __vite_ssr_import_2__ = await __vite_ssr_import__("/node_modules/vitest/dist/index.js", {"importedNames":["describe","expect","it"]});



const SCRIPT = (0,__vite_ssr_import_0__.readFileSync)("extensions/firstpromoter-tracking/assets/firstpromoter.js", "utf8");
function runEmbed(consent) {
  const appended = [];
  const listeners = {};
  let loadFeaturesDone;
  const shopify = {};
  if (consent.privacy) shopify.customerPrivacy = consent.privacy;
  if (consent.late) {
    shopify.loadFeatures = (_features, done) => {
      loadFeaturesDone = () => {
        shopify.customerPrivacy = consent.late;
        done();
      };
    };
  };
  const window = {
    __FPR_CONFIG: { cid: "abc", respectConsent: consent.respectConsent ?? true },
    Shopify: shopify,
    fetch: () => Promise.resolve({ ok: true, json: () => Promise.resolve({ attributes: {} }) }),
    FormData: class {
    },
    addEventListener: () => void 0,
    setInterval: () => 0,
    clearInterval: () => void 0,
    setTimeout
  };
  window.window = window;
  window.document = {
    cookie: "",
    head: { appendChild: (el) => appended.push(el.src) },
    createElement: () => ({}),
    addEventListener: (name, fn) => (listeners[name] ??= []).push(fn)
  };
  (0,__vite_ssr_import_1__.runInNewContext)(SCRIPT, window);
  return {
    tracking: () => appended.includes("https://cdn.firstpromoter.com/fpr.js"),
    finishLoading: () => loadFeaturesDone?.(),
    collectConsent: () => listeners.visitorConsentCollected?.forEach((fn) => fn()),
    shopify
  };
}
const allow = { marketingAllowed: () => true };
const deny = { marketingAllowed: () => false };
(0,__vite_ssr_import_2__.describe)("storefront script and marketing consent", () => {
  (0,__vite_ssr_import_2__.it)("does not track when consent is denied", () => {
    (0,__vite_ssr_import_2__.expect)(runEmbed({ privacy: deny }).tracking()).toBe(false);
  });
  (0,__vite_ssr_import_2__.it)("tracks when consent is given", () => {
    (0,__vite_ssr_import_2__.expect)(runEmbed({ privacy: allow }).tracking()).toBe(true);
  });
  (0,__vite_ssr_import_2__.it)("waits for a consent API that loads late instead of assuming consent", () => {
    const embed = runEmbed({ late: deny });
    (0,__vite_ssr_import_2__.expect)(embed.tracking()).toBe(false);
    embed.finishLoading();
    (0,__vite_ssr_import_2__.expect)(embed.tracking()).toBe(false);
  });
  (0,__vite_ssr_import_2__.it)("starts once the late consent API allows marketing", () => {
    const embed = runEmbed({ late: allow });
    (0,__vite_ssr_import_2__.expect)(embed.tracking()).toBe(false);
    embed.finishLoading();
    (0,__vite_ssr_import_2__.expect)(embed.tracking()).toBe(true);
  });
  (0,__vite_ssr_import_2__.it)("starts after the visitor accepts in the banner", () => {
    const embed = runEmbed({ privacy: deny });
    embed.shopify.customerPrivacy = allow;
    embed.collectConsent();
    (0,__vite_ssr_import_2__.expect)(embed.tracking()).toBe(true);
  });
  (0,__vite_ssr_import_2__.it)("does not block when the store has no consent API at all", () => {
    (0,__vite_ssr_import_2__.expect)(runEmbed({}).tracking()).toBe(true);
  });
  (0,__vite_ssr_import_2__.it)("ignores consent when the merchant turned the setting off", () => {
    (0,__vite_ssr_import_2__.expect)(runEmbed({ privacy: deny, respectConsent: false }).tracking()).toBe(true);
  });
});
//# sourceMappingSource=vite-generated
//# sourceMappingURL=data:application/json;base64,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UUFBUSxrQkFBa0I7QUFDaEMsVUFBTSxlQUFlO0FBQ3JCLHFDQUFPLE1BQU0sU0FBUyxDQUFDLEVBQUUsS0FBSyxJQUFJO0FBQUEsRUFDcEMsQ0FBQztBQUNELCtCQUFHLDJEQUEyRCxNQUFNO0FBQ2xFLHFDQUFPLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLEVBQUUsS0FBSyxJQUFJO0FBQUEsRUFDM0MsQ0FBQztBQUNELCtCQUFHLDREQUE0RCxNQUFNO0FBQ25FLHFDQUFPLFNBQVMsRUFBRSxTQUFTLE1BQU0sZ0JBQWdCLE1BQU0sQ0FBQyxFQUFFLFNBQVMsQ0FBQyxFQUFFLEtBQUssSUFBSTtBQUFBLEVBQ2pGLENBQUM7QUFDSCxDQUFDIiwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlcyI6WyJlbWJlZC50ZXN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlYWRGaWxlU3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgeyBydW5Jbk5ld0NvbnRleHQgfSBmcm9tIFwibm9kZTp2bVwiO1xuaW1wb3J0IHsgZGVzY3JpYmUsIGV4cGVjdCwgaXQgfSBmcm9tIFwidml0ZXN0XCI7XG5cbmNvbnN0IFNDUklQVCA9IHJlYWRGaWxlU3luYyhcImV4dGVuc2lvbnMvZmlyc3Rwcm9tb3Rlci10cmFja2luZy9hc3NldHMvZmlyc3Rwcm9tb3Rlci5qc1wiLCBcInV0ZjhcIik7XG5cbnR5cGUgUHJpdmFjeSA9IHsgbWFya2V0aW5nQWxsb3dlZDogKCkgPT4gYm9vbGVhbiB9O1xuXG4vKipcbiAqIFJ1bnMgdGhlIHN0b3JlZnJvbnQgc2NyaXB0IGluIGEgYmFyZSB3aW5kb3cuIFwibGF0ZVwiIGNvbnNlbnQgYXJyaXZlcyB0aHJvdWdoXG4gKiBTaG9waWZ5LmxvYWRGZWF0dXJlcywgdGhlIHdheSBTaG9waWZ5IGxvYWRzIHRoZSBjdXN0b21lciBwcml2YWN5IEFQSS5cbiAqL1xuZnVuY3Rpb24gcnVuRW1iZWQoY29uc2VudDogeyBwcml2YWN5PzogUHJpdmFjeTsgbGF0ZT86IFByaXZhY3k7IHJlc3BlY3RDb25zZW50PzogYm9vbGVhbiB9KSB7XG4gIGNvbnN0IGFwcGVuZGVkOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCBsaXN0ZW5lcnM6IFJlY29yZDxzdHJpbmcsIEFycmF5PCgpID0+IHZvaWQ+PiA9IHt9O1xuICBsZXQgbG9hZEZlYXR1cmVzRG9uZTogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xuICBjb25zdCBzaG9waWZ5OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuICBpZiAoY29uc2VudC5wcml2YWN5KSBzaG9waWZ5LmN1c3RvbWVyUHJpdmFjeSA9IGNvbnNlbnQucHJpdmFjeTtcbiAgaWYgKGNvbnNlbnQubGF0ZSkge1xuICAgIHNob3BpZnkubG9hZEZlYXR1cmVzID0gKF9mZWF0dXJlczogdW5rbm93biwgZG9uZTogKGVycm9yPzogdW5rbm93bikgPT4gdm9pZCkgPT4ge1xuICAgICAgbG9hZEZlYXR1cmVzRG9uZSA9ICgpID0+IHtcbiAgICAgICAgc2hvcGlmeS5jdXN0b21lclByaXZhY3kgPSBjb25zZW50LmxhdGU7XG4gICAgICAgIGRvbmUoKTtcbiAgICAgIH07XG4gICAgfTtcbiAgfVxuICBjb25zdCB3aW5kb3c6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgIF9fRlBSX0NPTkZJRzogeyBjaWQ6IFwiYWJjXCIsIHJlc3BlY3RDb25zZW50OiBjb25zZW50LnJlc3BlY3RDb25zZW50ID8/IHRydWUgfSxcbiAgICBTaG9waWZ5OiBzaG9waWZ5LFxuICAgIGZldGNoOiAoKSA9PiBQcm9taXNlLnJlc29sdmUoeyBvazogdHJ1ZSwganNvbjogKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHsgYXR0cmlidXRlczoge30gfSkgfSksXG4gICAgRm9ybURhdGE6IGNsYXNzIHt9LFxuICAgIGFkZEV2ZW50TGlzdGVuZXI6ICgpID0+IHVuZGVmaW5lZCxcbiAgICBzZXRJbnRlcnZhbDogKCkgPT4gMCxcbiAgICBjbGVhckludGVydmFsOiAoKSA9PiB1bmRlZmluZWQsXG4gICAgc2V0VGltZW91dCxcbiAgfTtcbiAgd2luZG93LndpbmRvdyA9IHdpbmRvdztcbiAgd2luZG93LmRvY3VtZW50ID0ge1xuICAgIGNvb2tpZTogXCJcIixcbiAgICBoZWFkOiB7IGFwcGVuZENoaWxkOiAoZWw6IHsgc3JjOiBzdHJpbmcgfSkgPT4gYXBwZW5kZWQucHVzaChlbC5zcmMpIH0sXG4gICAgY3JlYXRlRWxlbWVudDogKCkgPT4gKHt9KSxcbiAgICBhZGRFdmVudExpc3RlbmVyOiAobmFtZTogc3RyaW5nLCBmbjogKCkgPT4gdm9pZCkgPT4gKGxpc3RlbmVyc1tuYW1lXSA/Pz0gW10pLnB1c2goZm4pLFxuICB9O1xuICBydW5Jbk5ld0NvbnRleHQoU0NSSVBULCB3aW5kb3cpO1xuICByZXR1cm4ge1xuICAgIHRyYWNraW5nOiAoKSA9PiBhcHBlbmRlZC5pbmNsdWRlcyhcImh0dHBzOi8vY2RuLmZpcnN0cHJvbW90ZXIuY29tL2Zwci5qc1wiKSxcbiAgICBmaW5pc2hMb2FkaW5nOiAoKSA9PiBsb2FkRmVhdHVyZXNEb25lPy4oKSxcbiAgICBjb2xsZWN0Q29uc2VudDogKCkgPT4gbGlzdGVuZXJzLnZpc2l0b3JDb25zZW50Q29sbGVjdGVkPy5mb3JFYWNoKChmbikgPT4gZm4oKSksXG4gICAgc2hvcGlmeSxcbiAgfTtcbn1cblxuY29uc3QgYWxsb3c6IFByaXZhY3kgPSB7IG1hcmtldGluZ0FsbG93ZWQ6ICgpID0+IHRydWUgfTtcbmNvbnN0IGRlbnk6IFByaXZhY3kgPSB7IG1hcmtldGluZ0FsbG93ZWQ6ICgpID0+IGZhbHNlIH07XG5cbmRlc2NyaWJlKFwic3RvcmVmcm9udCBzY3JpcHQgYW5kIG1hcmtldGluZyBjb25zZW50XCIsICgpID0+IHtcbiAgaXQoXCJkb2VzIG5vdCB0cmFjayB3aGVuIGNvbnNlbnQgaXMgZGVuaWVkXCIsICgpID0+IHtcbiAgICBleHBlY3QocnVuRW1iZWQoeyBwcml2YWN5OiBkZW55IH0pLnRyYWNraW5nKCkpLnRvQmUoZmFsc2UpO1xuICB9KTtcbiAgaXQoXCJ0cmFja3Mgd2hlbiBjb25zZW50IGlzIGdpdmVuXCIsICgpID0+IHtcbiAgICBleHBlY3QocnVuRW1iZWQoeyBwcml2YWN5OiBhbGxvdyB9KS50cmFja2luZygpKS50b0JlKHRydWUpO1xuICB9KTtcbiAgaXQoXCJ3YWl0cyBmb3IgYSBjb25zZW50IEFQSSB0aGF0IGxvYWRzIGxhdGUgaW5zdGVhZCBvZiBhc3N1bWluZyBjb25zZW50XCIsICgpID0+IHtcbiAgICBjb25zdCBlbWJlZCA9IHJ1bkVtYmVkKHsgbGF0ZTogZGVueSB9KTtcbiAgICBleHBlY3QoZW1iZWQudHJhY2tpbmcoKSkudG9CZShmYWxzZSk7XG4gICAgZW1iZWQuZmluaXNoTG9hZGluZygpO1xuICAgIGV4cGVjdChlbWJlZC50cmFja2luZygpKS50b0JlKGZhbHNlKTtcbiAgfSk7XG4gIGl0KFwic3RhcnRzIG9uY2UgdGhlIGxhdGUgY29uc2VudCBBUEkgYWxsb3dzIG1hcmtldGluZ1wiLCAoKSA9PiB7XG4gICAgY29uc3QgZW1iZWQgPSBydW5FbWJlZCh7IGxhdGU6IGFsbG93IH0pO1xuICAgIGV4cGVjdChlbWJlZC50cmFja2luZygpKS50b0JlKGZhbHNlKTtcbiAgICBlbWJlZC5maW5pc2hMb2FkaW5nKCk7XG4gICAgZXhwZWN0KGVtYmVkLnRyYWNraW5nKCkpLnRvQmUodHJ1ZSk7XG4gIH0pO1xuICBpdChcInN0YXJ0cyBhZnRlciB0aGUgdmlzaXRvciBhY2NlcHRzIGluIHRoZSBiYW5uZXJcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGVtYmVkID0gcnVuRW1iZWQoeyBwcml2YWN5OiBkZW55IH0pO1xuICAgIGVtYmVkLnNob3BpZnkuY3VzdG9tZXJQcml2YWN5ID0gYWxsb3c7XG4gICAgZW1iZWQuY29sbGVjdENvbnNlbnQoKTtcbiAgICBleHBlY3QoZW1iZWQudHJhY2tpbmcoKSkudG9CZSh0cnVlKTtcbiAgfSk7XG4gIGl0KFwiZG9lcyBub3QgYmxvY2sgd2hlbiB0aGUgc3RvcmUgaGFzIG5vIGNvbnNlbnQgQVBJIGF0IGFsbFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KHJ1bkVtYmVkKHt9KS50cmFja2luZygpKS50b0JlKHRydWUpO1xuICB9KTtcbiAgaXQoXCJpZ25vcmVzIGNvbnNlbnQgd2hlbiB0aGUgbWVyY2hhbnQgdHVybmVkIHRoZSBzZXR0aW5nIG9mZlwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KHJ1bkVtYmVkKHsgcHJpdmFjeTogZGVueSwgcmVzcGVjdENvbnNlbnQ6IGZhbHNlIH0pLnRyYWNraW5nKCkpLnRvQmUodHJ1ZSk7XG4gIH0pO1xufSk7XG4iXSwiZmlsZSI6Ii90ZXN0cy9lbWJlZC50ZXN0LnRzIn0=

//# vitestCache=W3siZmlsZSI6IjEiLCJpZCI6IjEiLCJ1cmwiOiIyIiwiaW1wb3J0cyI6IjMiLCJtYXBwaW5ncyI6ZmFsc2UsImRlcHMiOiI0IiwiZHluYW1pY0RlcHMiOiI1Iiwic3RhdGljTW9ja3MiOm51bGx9LCIvVXNlcnMvZGF3aWQvRGVza3RvcC9maXJzdHByb21vdGVyLXNob3BpZnktYXBwL3Rlc3RzL2VtYmVkLnRlc3QudHMiLCIvdGVzdHMvZW1iZWQudGVzdC50cyIseyJ1cmxzIjoiNiIsImlkcyI6IjcifSxbIjgiLCI5IiwiMTAiXSxbXSxbIjEwIl0se30sIm5vZGU6ZnMiLCJub2RlOnZtIiwiL25vZGVfbW9kdWxlcy92aXRlc3QvZGlzdC9pbmRleC5qcyJd