octree-gva/Zeitline

View on GitHub
packages/zeitline/test/timeline-events.spec.js

Summary

Maintainability
A
0 mins
Test Coverage
const chai = require('chai');
const spies = require('chai-spies');
const util = require('./util');
const d3 = require('d3');

chai.use(spies);

const expect = chai.expect;

describe('Timeline events', () => {
  let conf;

  before(() => {
    conf = {
      dateRange: [
        new Date('2000-01-01'),
        new Date('2010-01-01'),
      ],
      data: [
        {date: new Date('01 Apr 2002'), label: 'test 1'},
        {date: new Date('10 Apr 2005'), label: 'test 2'},
        {date: new Date('20 Apr 2008'), label: 'test 3'},
      ],
      intervals: [
        [
          new Date('2002-01-01'),
          new Date('2008-01-01'),
          200,
        ],
      ],
      margin: {top: 0, left: 0, right: 0, bottom: 0},
      eventListeners: {
        click: chai.spy(function(event) {
        }),
      },
      pivotListeners: {
        click: chai.spy(function(event) {
        }),
      },
    };
  });

  let window;
  let pivots;
  let events;
  beforeEach(() => {
    window = util.getWindowWithZeitline(conf);

    pivots = window.document.querySelector('svg')
      .querySelectorAll('.pivot-group');

    events = window.document.querySelector('svg')
      .querySelectorAll('.event-group');
  });

  it('should dispatch a click on both pivots', () => {
    d3.selectAll(pivots).dispatch('click');
    expect(conf.pivotListeners.click).to.have.been.called.twice;
  });

  it('should dispatch a click on events', () => {
    d3.selectAll(events).dispatch('click');
    expect(conf.eventListeners.click).to.have.been.called.exactly(3);
  });
});