import createBlink, { VideoAdInput } from '../main';
import { VERSION } from '../config/config';
import jest from 'jest-mock';

describe('Video ad integration test', () => {
  it('should send a single video ad event', () => {
    const mockSend = jest.fn();

    const blink = createBlink({
      send: mockSend,
      sendDirect: mockSend,
    });

    // First send of a pageInit event, to set the general state
    blink.pageInit({
      url: 'http://some.site',
      pageView: 'the-pageview-id',
      referrer: 'www.sol.no',
      site: 'www.kk.no',
    });

    const input: VideoAdInput = {
      videoId: '123',
      playerId: '111',
      time: new Date(2),
      adPosition: 'pre',
    };

    blink.videoAd(input);

    expect(mockSend.mock.calls[0][0]).toEqual([
      {
        // generic fields
        id: '123',
        videoId: '123',
        type: 'videoAd',
        pageView: 'the-pageview-id',
        referrer: 'www.sol.no',
        site: 'www.kk.no',
        version: VERSION,
        time: new Date(2),
        // video specific fields
        videoAdPosition: 'pre',
      },
    ]);
  });
});
