src/server/utilities/extractHeaders/index.test.ts

Summary

Maintainability
A
0 mins
Test Coverage
import extractHeaders from '.';

describe('extractHeader', () => {
  it(`sets isUK to true when 'x-bbc-edge-isuk' is set to yes`, () => {
    const actual = extractHeaders({
      'x-bbc-edge-isuk': 'yes',
    });
    expect(actual).toStrictEqual({
      bbcOrigin: null,
      isUK: true,
      showAdsBasedOnLocation: false,
      showCookieBannerBasedOnCountry: true,
    });
  });

  it(`sets isUK to true when 'x-country' is set to 'gb'`, () => {
    const actual = extractHeaders({
      'x-country': 'gb',
    });
    expect(actual).toStrictEqual({
      bbcOrigin: null,
      isUK: true,
      showAdsBasedOnLocation: false,
      showCookieBannerBasedOnCountry: true,
    });
  });

  it(`sets showCookieBannerBasedOnCountry to false when 'x-country' is set to 'za' and 'x-bbc-edge-isuk' is set to 'no'`, () => {
    const actual = extractHeaders({
      'x-country': 'za',
      'x-bbc-edge-isuk': 'no',
    });
    expect(actual).toStrictEqual({
      bbcOrigin: null,
      isUK: false,
      showAdsBasedOnLocation: false,
      showCookieBannerBasedOnCountry: false,
    });
  });

  it(`sets showCookieBannerBasedOnCountry to true when 'x-country' is set to 'za' and 'x-bbc-edge-isuk' is set to 'yes'`, () => {
    const actual = extractHeaders({
      'x-country': 'za',
      'x-bbc-edge-isuk': 'yes',
    });
    expect(actual).toStrictEqual({
      bbcOrigin: null,
      isUK: true,
      showAdsBasedOnLocation: false,
      showCookieBannerBasedOnCountry: true,
    });
  });

  it(`sets showCookieBannerBasedOnCountry to false when 'x-bbc-edge-country' is set to 'za'`, () => {
    const actual = extractHeaders({
      'x-bbc-edge-country': 'za',
    });
    expect(actual).toStrictEqual({
      bbcOrigin: null,
      isUK: null,
      showAdsBasedOnLocation: false,
      showCookieBannerBasedOnCountry: false,
    });
  });

  it(`sets showAdsBasedOnLocation to true when 'bbc-adverts' header is set to 'true'`, () => {
    const actual = extractHeaders({
      'bbc-adverts': 'true',
    });
    expect(actual).toStrictEqual({
      bbcOrigin: null,
      isUK: null,
      showAdsBasedOnLocation: true,
      showCookieBannerBasedOnCountry: true,
    });
  });

  it(`sets bbcOrigin when 'bbc-origin' header is set`, () => {
    const actual = extractHeaders({
      'bbc-origin': 'https://www.bbc.co.uk/news',
    });
    expect(actual).toStrictEqual({
      bbcOrigin: 'https://www.bbc.co.uk/news',
      isUK: null,
      showAdsBasedOnLocation: false,
      showCookieBannerBasedOnCountry: true,
    });
  });
});