@c15t/nextjs
Version:
Developer-first CMP for Next.js: cookie banner, consent manager, preferences centre. GDPR ready with minimal setup and rich customization.
1 lines • 2.1 kB
JavaScript
import*as e from"vitest";import*as t from"./headers.js";(0,e.describe)("extractRelevantHeaders",()=>{(0,e.it)("should extract all relevant headers when present",()=>{let r=new Headers;r.set("cf-ipcountry","US"),r.set("x-vercel-ip-country","GB"),r.set("x-amz-cf-ipcountry","DE"),r.set("x-country-code","FR"),r.set("x-vercel-ip-country-region","CA-ON"),r.set("x-region-code","WEST"),r.set("accept-language","en-US,en;q=0.9"),r.set("user-agent","Mozilla/5.0");let c=(0,t.extractRelevantHeaders)(r);(0,e.expect)(c).toEqual({"cf-ipcountry":"US","x-vercel-ip-country":"GB","x-amz-cf-ipcountry":"DE","x-country-code":"FR","x-vercel-ip-country-region":"CA-ON","x-region-code":"WEST","accept-language":"en-US,en;q=0.9","user-agent":"Mozilla/5.0","x-c15t-country":"US","x-c15t-region":"CA-ON"})}),(0,e.it)("should only extract headers that are present",()=>{let r=new Headers;r.set("cf-ipcountry","US"),r.set("user-agent","Mozilla/5.0");let c=(0,t.extractRelevantHeaders)(r);(0,e.expect)(c).toEqual({"cf-ipcountry":"US","user-agent":"Mozilla/5.0","x-c15t-country":"US"})}),(0,e.it)("should return empty object when no relevant headers are present",()=>{let r=new Headers;r.set("irrelevant-header","some-value");let c=(0,t.extractRelevantHeaders)(r);(0,e.expect)(c).toEqual({})}),(0,e.it)("should handle empty Headers object",()=>{let r=new Headers,c=(0,t.extractRelevantHeaders)(r);(0,e.expect)(c).toEqual({})}),(0,e.it)("should add c15t headers when corresponding headers are present",()=>{let r=new Headers;r.set("cf-ipcountry","US"),r.set("x-vercel-ip-country","GB"),r.set("x-amz-cf-ipcountry","DE"),r.set("x-country-code","FR"),r.set("x-vercel-ip-country-region","CA-ON"),r.set("x-region-code","WEST");let c=(0,t.extractRelevantHeaders)(r);(0,e.expect)(c).toMatchObject({"x-c15t-country":"US","x-c15t-region":"CA-ON"});let a=new Headers;a.set("x-country-code","FR");let n=(0,t.extractRelevantHeaders)(a);(0,e.expect)(n).toMatchObject({"x-c15t-country":"FR"});let o=new Headers;o.set("x-region-code","WEST");let s=(0,t.extractRelevantHeaders)(o);(0,e.expect)(s).toMatchObject({"x-c15t-region":"WEST"})})});