split-menu.spec.tsx 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import '../../helpers/bootstrap-3'
  2. import SplitMenu from '../../../../frontend/js/shared/components/split-menu'
  3. describe('SplitMenu', function () {
  4. it('renders primary variant', function () {
  5. cy.mount(
  6. <SplitMenu
  7. bsStyle="primary"
  8. button={{
  9. text: 'Button Text',
  10. }}
  11. dropdown={{
  12. id: 'pdf-recompile-dropdown',
  13. }}
  14. >
  15. <SplitMenu.Item>Item 1</SplitMenu.Item>
  16. <SplitMenu.Item>Item 2</SplitMenu.Item>
  17. <SplitMenu.Item>Item 3</SplitMenu.Item>
  18. </SplitMenu>
  19. )
  20. cy.get('button.split-menu-button').contains('Button Text')
  21. cy.get('button.split-menu-button').should('have.class', 'btn-primary')
  22. cy.get('button.split-menu-dropdown-toggle').should(
  23. 'have.class',
  24. 'btn-primary'
  25. )
  26. cy.get('li').should('have.length', 3)
  27. cy.get('li').contains('Item 1')
  28. cy.get('li').contains('Item 2')
  29. cy.get('li').contains('Item 3')
  30. cy.get('ul.dropdown-menu').should('not.be.visible')
  31. cy.get('button.split-menu-dropdown-toggle').click()
  32. cy.get('ul.dropdown-menu').should('be.visible')
  33. })
  34. it('with custom classNames', function () {
  35. cy.mount(
  36. <SplitMenu
  37. bsStyle="primary"
  38. button={{
  39. text: 'Button Text',
  40. className: 'split-menu-class-1',
  41. }}
  42. dropdown={{
  43. id: 'pdf-recompile-dropdown',
  44. className: 'split-menu-class-2',
  45. }}
  46. dropdownToggle={{
  47. className: 'split-menu-class-3',
  48. }}
  49. >
  50. <SplitMenu.Item>Item 1</SplitMenu.Item>
  51. </SplitMenu>
  52. )
  53. cy.get('button.split-menu-button').should(
  54. 'have.class',
  55. 'split-menu-class-1'
  56. )
  57. cy.get('div.split-menu-dropdown').should('have.class', 'split-menu-class-2')
  58. cy.get('button.split-menu-dropdown-toggle').should(
  59. 'have.class',
  60. 'split-menu-class-3'
  61. )
  62. })
  63. })