split-menu.spec.tsx 1.8 KB

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