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

describe('prepareImpressionEvent', () => {
  it('should format properly based on state', () => {
    const id = 'dagbladet.no/70083960';
    const url =
      'https://www.dagbladet.no/sport/em-stjerner-gnir-seg-i-oynene-over-warholm-stunt---helt-umenneskelig/70083960';
    const title =
      'EM-stjerner gnir seg i øynene over Warholm-stunt: - Helt umenneskelig';
    const personalizationSystemUsed = 'cerebro';
    const personalizationParametersRequested =
      'xavier-plussutvalgt&reset_weights=1&weight_cf=0.4&weight_tpm=0.3&weight_age=0.3';
    const context = ['tag=a', 'tag=div&class=left'];
    const height = 500;
    const width = 200;

    const page: Page = {
      id: 'default',
      state: {
        general: {
          pageView: 'some-pageview-uuid',
          site: 'www.dagbladet.no',
          referrer: 'www.dinside.no',
        },
        screen: {
          events: [],
        },
      },
    };

    const expectedEvent: BlinkEvent = {
      type: 'impression',
      context: ['tag=a', 'tag=div&class=left'],
      pageView: 'some-pageview-uuid',
      site: 'www.dagbladet.no',
      referrer: 'www.dinside.no',
      version: VERSION,
      id: 'dagbladet.no/70083960',
      article: {
        url: 'https://www.dagbladet.no/sport/em-stjerner-gnir-seg-i-oynene-over-warholm-stunt---helt-umenneskelig/70083960',
        harvesterId: 'dagbladet.no/70083960',
      },
      title:
        'EM-stjerner gnir seg i øynene over Warholm-stunt: - Helt umenneskelig',
      height: 500,
      abId: '4f1c71885d907251b40eeeb8e9119b1e',
      width: 200,
      personalizationSystemUsed: 'cerebro',
      personalizationParametersRequested:
        'xavier-plussutvalgt&reset_weights=1&weight_cf=0.4&weight_tpm=0.3&weight_age=0.3',
    };

    expect(
      prepareImpressionEvent({
        page,
        id,
        context,
        url,
        title,
        abId: '4f1c71885d907251b40eeeb8e9119b1e',
        personalizationSystemUsed,
        personalizationParametersRequested,
        height,
        width,
      }),
    ).toEqual(expectedEvent);
  });
});
