import preparePageloadEvent from '../prepare-pageload-event';
import { VERSION } from '../../config/config';
import { BlinkEvent } from '../../types';
import { Page } from '../../selectors/get-page-state';

describe('preparePageloadEvent', () => {
  it('should format properly based on state', () => {
    const url = 'https://www.dagbladet.no/a/123';
    const page: Page = {
      id: 'default',
      state: {
        general: {
          abCookie: 14,
          commercialSegments: 'sport,soccer,gardening',
          pageType: 'fb instant article',
          pageView: 'some-pageview-uuid',
          previousPageView: 'prev-pageview-uuid',
          site: 'www.dagbladet.no',
          referrer: 'www.dinside.no',
          clientHeight: 3333,
          clientWidth: 4444,
          scrollHeight: 5555,
          plussData: {
            hasAccess: true,
            customerNumber: '15664915',
          },
        },
      },
    };

    const expected: BlinkEvent = {
      id: 'dagbladet.no/123',
      type: 'pageLoad',
      abCookie: 14,
      commercialSegments: 'sport,soccer,gardening',
      article: {
        harvesterId: 'dagbladet.no/123',
        url: 'https://www.dagbladet.no/a/123',
      },
      pageType: 'fb instant article',
      pageView: 'some-pageview-uuid',
      previousPageView: 'prev-pageview-uuid',
      site: 'www.dagbladet.no',
      referrer: 'www.dinside.no',
      version: VERSION,
      plussData: {
        hasAccess: true,
        customerNumber: '15664915',
      },
      clientHeight: 3333,
      clientWidth: 4444,
      scroll: {
        scrollHeight: 5555,
      },
    };
    expect(preparePageloadEvent({ page, url })).toEqual(expected);
  });
});
