aboutsummaryrefslogtreecommitdiffstats
path: root/test/unit/responsive/components/dropdown-test.js
blob: feadc792e0bde2b9b06b82e4e8c2da94ccc21470 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
var assert = require('assert');

const additions = require('react-testutils-additions');
const h = require('react-hyperscript');
const ReactTestUtils = require('react-addons-test-utils');
const sinon = require('sinon');
const path = require('path');
const Dropdown = require(path.join(__dirname, '..', '..', '..', '..', 'ui', 'responsive', 'app', 'components', 'dropdown.js')).Dropdown;
const DropdownMenuItem = require(path.join(__dirname, '..', '..', '..', '..', 'ui', 'responsive', 'app', 'components', 'dropdown.js')).DropdownMenuItem;

describe('Dropdown components', function () {
  it('can render two items', function () {
    const renderer = ReactTestUtils.createRenderer()

    const onClickOutside = sinon.spy();
    const closeMenu = sinon.spy();
    const onClick = sinon.spy();

    const dropdownComponent = h(Dropdown, {
      isOpen: true,
      zIndex: 11,
      onClickOutside,
      style: {
        position: 'absolute',
        right: 0,
        top: '36px',
      },
      innerStyle: {},
    }, [ // DROP MENU ITEMS
      h('style', `
        .drop-menu-item:hover { background:rgb(235, 235, 235); }
        .drop-menu-item i { margin: 11px; }
      `),

      h(DropdownMenuItem, {
        closeMenu,
        onClick,
      }, 'Item 1'),

      h(DropdownMenuItem, {
        closeMenu,
        onClick,
      }, 'Item 2'),
    ])

    const component = additions.renderIntoDocument(dropdownComponent);
    renderer.render(dropdownComponent);
    const items = additions.find(component, 'li');
    assert.equal(items.length, 2);
  });
});