q2-tecton-elements 1.45.1 → 1.45.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/dist/cjs/q2-message.cjs.entry.js +1 -1
  2. package/dist/cjs/q2-message.cjs.entry.js.map +1 -1
  3. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +1 -1
  4. package/dist/cjs/q2-stepper-vertical.cjs.entry.js.map +1 -1
  5. package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
  6. package/dist/cjs/q2-stepper.cjs.entry.js.map +1 -1
  7. package/dist/collection/components/q2-message/q2-message.css +3 -3
  8. package/dist/collection/components/q2-stepper/q2-stepper.css +4 -2
  9. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.css +5 -16
  10. package/dist/components/q2-message2.js +1 -1
  11. package/dist/components/q2-message2.js.map +1 -1
  12. package/dist/components/q2-stepper-vertical.js +1 -1
  13. package/dist/components/q2-stepper-vertical.js.map +1 -1
  14. package/dist/components/q2-stepper.js +1 -1
  15. package/dist/components/q2-stepper.js.map +1 -1
  16. package/dist/esm/q2-message.entry.js +1 -1
  17. package/dist/esm/q2-message.entry.js.map +1 -1
  18. package/dist/esm/q2-stepper-vertical.entry.js +1 -1
  19. package/dist/esm/q2-stepper-vertical.entry.js.map +1 -1
  20. package/dist/esm/q2-stepper.entry.js +1 -1
  21. package/dist/esm/q2-stepper.entry.js.map +1 -1
  22. package/dist/q2-tecton-elements/p-445990a8.entry.js +2 -0
  23. package/dist/q2-tecton-elements/p-445990a8.entry.js.map +1 -0
  24. package/dist/q2-tecton-elements/p-a977e723.entry.js +2 -0
  25. package/dist/q2-tecton-elements/p-a977e723.entry.js.map +1 -0
  26. package/dist/q2-tecton-elements/p-c016bd18.entry.js +2 -0
  27. package/dist/q2-tecton-elements/p-c016bd18.entry.js.map +1 -0
  28. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  29. package/dist/test/elements/q2-action-sheet-test.e2e.js +5 -1
  30. package/dist/test/elements/q2-action-sheet-test.e2e.js.map +1 -1
  31. package/dist/test/elements/q2-avatar-test.e2e.js +2 -3
  32. package/dist/test/elements/q2-avatar-test.e2e.js.map +1 -1
  33. package/dist/test/elements/q2-badge-test.e2e.js +5 -1
  34. package/dist/test/elements/q2-badge-test.e2e.js.map +1 -1
  35. package/dist/test/elements/q2-btn-test.e2e.js +5 -1
  36. package/dist/test/elements/q2-btn-test.e2e.js.map +1 -1
  37. package/dist/test/elements/q2-calendar-test.e2e.js +5 -1
  38. package/dist/test/elements/q2-calendar-test.e2e.js.map +1 -1
  39. package/dist/test/elements/q2-card-test.e2e.js +5 -1
  40. package/dist/test/elements/q2-card-test.e2e.js.map +1 -1
  41. package/dist/test/elements/q2-chart-area-test.e2e.js +5 -1
  42. package/dist/test/elements/q2-chart-area-test.e2e.js.map +1 -1
  43. package/dist/test/elements/q2-chart-bar-test.e2e.js +5 -1
  44. package/dist/test/elements/q2-chart-bar-test.e2e.js.map +1 -1
  45. package/dist/test/elements/q2-chart-donut-test.e2e.js +5 -1
  46. package/dist/test/elements/q2-chart-donut-test.e2e.js.map +1 -1
  47. package/dist/test/elements/q2-checkbox-group-test.e2e.js +5 -1
  48. package/dist/test/elements/q2-checkbox-group-test.e2e.js.map +1 -1
  49. package/dist/test/elements/q2-checkbox-test.e2e.js +5 -1
  50. package/dist/test/elements/q2-checkbox-test.e2e.js.map +1 -1
  51. package/dist/test/elements/q2-currency-test.e2e.js +5 -1
  52. package/dist/test/elements/q2-currency-test.e2e.js.map +1 -1
  53. package/dist/test/elements/q2-data-table-test.e2e.js +5 -1
  54. package/dist/test/elements/q2-data-table-test.e2e.js.map +1 -1
  55. package/dist/test/elements/q2-dropdown-item-test.e2e.js +5 -1
  56. package/dist/test/elements/q2-dropdown-item-test.e2e.js.map +1 -1
  57. package/dist/test/elements/q2-dropdown-test.e2e.js +5 -1
  58. package/dist/test/elements/q2-dropdown-test.e2e.js.map +1 -1
  59. package/dist/test/elements/q2-editable-field-test.e2e.js +5 -1
  60. package/dist/test/elements/q2-editable-field-test.e2e.js.map +1 -1
  61. package/dist/test/elements/q2-icon-test.e2e.js +5 -1
  62. package/dist/test/elements/q2-icon-test.e2e.js.map +1 -1
  63. package/dist/test/elements/q2-input-test.e2e.js +5 -1
  64. package/dist/test/elements/q2-input-test.e2e.js.map +1 -1
  65. package/dist/test/elements/q2-loading-test.e2e.js +5 -1
  66. package/dist/test/elements/q2-loading-test.e2e.js.map +1 -1
  67. package/dist/test/elements/q2-loc-test.e2e.js +5 -1
  68. package/dist/test/elements/q2-loc-test.e2e.js.map +1 -1
  69. package/dist/test/elements/q2-message-test.e2e.js +5 -1
  70. package/dist/test/elements/q2-message-test.e2e.js.map +1 -1
  71. package/dist/test/elements/q2-optgroup-test.e2e.js +5 -1
  72. package/dist/test/elements/q2-optgroup-test.e2e.js.map +1 -1
  73. package/dist/test/elements/q2-option-list-test.e2e.js +5 -1
  74. package/dist/test/elements/q2-option-list-test.e2e.js.map +1 -1
  75. package/dist/test/elements/q2-option-test.e2e.js +5 -1
  76. package/dist/test/elements/q2-option-test.e2e.js.map +1 -1
  77. package/dist/test/elements/q2-pagination-test.e2e.js +5 -1
  78. package/dist/test/elements/q2-pagination-test.e2e.js.map +1 -1
  79. package/dist/test/elements/q2-pill-test.e2e.js +2 -3
  80. package/dist/test/elements/q2-pill-test.e2e.js.map +1 -1
  81. package/dist/test/elements/q2-popover-test.e2e.js +6 -2
  82. package/dist/test/elements/q2-popover-test.e2e.js.map +1 -1
  83. package/dist/test/elements/q2-radio-group-test.e2e.js +5 -1
  84. package/dist/test/elements/q2-radio-group-test.e2e.js.map +1 -1
  85. package/dist/test/elements/q2-radio-test.e2e.js +5 -1
  86. package/dist/test/elements/q2-radio-test.e2e.js.map +1 -1
  87. package/dist/test/elements/q2-relative-time-test.e2e.js +8 -4
  88. package/dist/test/elements/q2-relative-time-test.e2e.js.map +1 -1
  89. package/dist/test/elements/q2-section-test.e2e.js +5 -1
  90. package/dist/test/elements/q2-section-test.e2e.js.map +1 -1
  91. package/dist/test/elements/q2-select-test.e2e.js +5 -1
  92. package/dist/test/elements/q2-select-test.e2e.js.map +1 -1
  93. package/dist/test/elements/q2-stepper-pane-test.e2e.js +5 -1
  94. package/dist/test/elements/q2-stepper-pane-test.e2e.js.map +1 -1
  95. package/dist/test/elements/q2-stepper-test.e2e.js +5 -1
  96. package/dist/test/elements/q2-stepper-test.e2e.js.map +1 -1
  97. package/dist/test/elements/q2-stepper-vertical-test.e2e.js +5 -1
  98. package/dist/test/elements/q2-stepper-vertical-test.e2e.js.map +1 -1
  99. package/dist/test/elements/q2-tab-container-test.e2e.js +5 -1
  100. package/dist/test/elements/q2-tab-container-test.e2e.js.map +1 -1
  101. package/dist/test/elements/q2-tab-pane-test.e2e.js +5 -1
  102. package/dist/test/elements/q2-tab-pane-test.e2e.js.map +1 -1
  103. package/dist/test/elements/q2-tag-test.e2e.js +2 -3
  104. package/dist/test/elements/q2-tag-test.e2e.js.map +1 -1
  105. package/dist/test/elements/q2-textarea-test.e2e.js +5 -1
  106. package/dist/test/elements/q2-textarea-test.e2e.js.map +1 -1
  107. package/dist/test/elements/q2-tooltip-test.e2e.js +5 -1
  108. package/dist/test/elements/q2-tooltip-test.e2e.js.map +1 -1
  109. package/dist/test/elements/tecton-tab-pane-test.e2e.js +5 -1
  110. package/dist/test/elements/tecton-tab-pane-test.e2e.js.map +1 -1
  111. package/dist/test/helpers.js +1 -1
  112. package/dist/test/helpers.js.map +1 -1
  113. package/dist/types/workspace/workspace/tecton-production_release_1.45.x/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +1 -1
  114. package/package.json +3 -3
  115. package/dist/q2-tecton-elements/p-4f7e2c8a.entry.js +0 -2
  116. package/dist/q2-tecton-elements/p-4f7e2c8a.entry.js.map +0 -1
  117. package/dist/q2-tecton-elements/p-bf125cdf.entry.js +0 -2
  118. package/dist/q2-tecton-elements/p-bf125cdf.entry.js.map +0 -1
  119. package/dist/q2-tecton-elements/p-f418967b.entry.js +0 -2
  120. package/dist/q2-tecton-elements/p-f418967b.entry.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"q2-popover-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-popover-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { getNestedElementProperty, setup } from '../helpers';\nimport { Q2Popover } from '../../src/components/q2-popover/q2-popover';\n\ndescribe('popover', () => {\n let page: E2EPage;\n let popover: E2EElement;\n let popoverContainer: E2EElement;\n\n const dispatchPopoverState = async (state: { open: boolean }) => {\n await page.$eval(\n 'q2-popover',\n (el, { open }) => el.dispatchEvent(new CustomEvent('popoverState', { detail: { open } })),\n state\n );\n };\n\n const getPopProperty = async (propertyName: string) => {\n return page.$eval(\n 'q2-popover',\n (el, propName) =>\n el.shadowRoot.querySelector<HTMLDivElement>('.container').style.getPropertyValue(propName),\n propertyName\n );\n };\n\n describe('Props', () => {\n describe('open', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-popover>\n <div style=\"height: 400px; width: 200px\"></div>\n </q2-popover>\n `,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n await page.$eval('q2-popover', (el: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n el.controlElement = controlElement;\n });\n });\n\n it('opens the popover when the open property is changed to true', async () => {\n const stateSpy = await popover.spyOnEvent('popoverStateChanged');\n\n expect((await popoverContainer.getComputedStyle()).display).toEqual('none');\n expect(popover).not.toHaveAttribute('open');\n\n popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n expect((await popoverContainer.getComputedStyle()).display).toEqual('block');\n expect(stateSpy).toHaveReceivedEventDetail({ open: true });\n });\n\n it('closes the popover when the open property is changed to false', async () => {\n const stateSpy = await popover.spyOnEvent('popoverStateChanged');\n popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect((await popoverContainer.getComputedStyle()).display).toEqual('block');\n expect(popover).toHaveAttribute('open');\n\n popover.setProperty('open', false);\n await page.waitForChanges();\n\n expect((await popoverContainer.getComputedStyle()).display).toEqual('none');\n expect(popover).not.toHaveAttribute('open');\n expect(stateSpy).toHaveReceivedEventDetail({ open: false });\n });\n\n it('adds and removes the currentDirection and --comp-pop-max-height property', async () => {\n const stateSpy = await popover.spyOnEvent('popoverStateChanged');\n\n popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(popover).toHaveAttribute('open');\n expect(await getPopProperty('--comp-pop-max-height')).toBe('390px');\n\n popover.setProperty('open', false);\n await page.waitForChanges();\n\n expect(popover).not.toHaveAttribute('open');\n expect(stateSpy).toHaveReceivedEventDetail({ open: false });\n expect(popoverContainer).not.toHaveClass('down');\n expect(await getPopProperty('--comp-pop-max-height')).toBe('');\n });\n });\n\n describe('direction', () => {\n describe('when provided a valid value', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-popover direction=\"up\" id=\"control\">\n <div style=\"height: 400px; width: 200px\"></div>\n </q2-popover>\n `,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n });\n it('sets currentDirection to provided value', async () => {\n expect((await popoverContainer.getComputedStyle()).display).toEqual('none');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect((await popoverContainer.getComputedStyle()).display).toEqual('block');\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).toHaveClass('up');\n });\n });\n\n describe('when provided an invalid value', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-popover direction=\"gibberish\" id=\"control\">\n <div style=\"height: 400px; width: 200px\"></div>\n </q2-popover>\n `,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n });\n it('ignores the direction and uses automated behavior', async () => {\n expect((await popoverContainer.getComputedStyle()).display).toEqual('none');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect((await popoverContainer.getComputedStyle()).display).toEqual('block');\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).toHaveClass('down');\n });\n });\n });\n });\n\n describe('Events', () => {\n describe('popoverState', () => {\n it('opens the popover when open is passed as true', async () => {\n page = await setup({\n html: `<q2-popover></q2-popover>`,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n const stateSpy = await popover.spyOnEvent('popoverStateChanged');\n\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n expect(stateSpy).toHaveReceivedEventDetail({ open: true });\n });\n\n it('closes the popover when open is passed as false', async () => {\n page = await setup({\n html: `<q2-popover open></q2-popover>`,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n const stateSpy = await popover.spyOnEvent('popoverStateChanged');\n\n expect(popover).toHaveAttribute('open');\n\n await dispatchPopoverState({ open: false });\n await page.waitForChanges();\n\n expect(popover).not.toHaveAttribute('open');\n expect(stateSpy).toHaveReceivedEventDetail({ open: false });\n });\n });\n });\n\n describe('Methods', () => {\n describe('toggle', () => {\n it('toggles the value of open', async () => {\n const popover = new Q2Popover();\n expect(popover.open).toBeUndefined();\n popover.toggle();\n expect(popover.open).toBe(true);\n popover.toggle();\n expect(popover.open).toBe(false);\n });\n });\n\n describe('scrollContainerTo', () => {\n it('scrolls the container to the given position', async () => {\n page = await setup({\n html: `\n <q2-popover>\n <div style=\"height: 2000px\"></div>\n </q2-popover>\n `,\n });\n await page.setViewport({ width: 800, height: 400 });\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n\n popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n\n await popover.callMethod('scrollContainerTo', { top: 1000 });\n await page.waitForChanges();\n\n expect(await getNestedElementProperty(page, ['q2-popover', '.container'], 'scrollTop')).toBe(1000);\n\n await popover.callMethod('scrollContainerTo', { top: 0 });\n await page.waitForChanges();\n\n expect(await getNestedElementProperty(page, ['q2-popover', '.container'], 'scrollTop')).toBe(0);\n });\n });\n });\n\n describe('determinePopDirection', () => {\n describe('when control element has more space below it', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <div style=\"height: 44px; width: 400px; background: black; position: fixed; top: 10px;\" id=\"control\"></div>\n <q2-popover>\n <div style=\"height: 500px\"></div>\n </q2-popover>\n `,\n });\n // await setBodyHeight();\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n await page.$eval('q2-popover', (el: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n el.controlElement = controlElement;\n });\n });\n it('auto-determines the direction to be down', async () => {\n expect(popover).not.toHaveAttribute('direction');\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).not.toHaveClass('up');\n expect(popoverContainer).toHaveClass('down');\n });\n it('sets currentDirection state variable to down', async () => {\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).not.toHaveClass('up');\n expect(popoverContainer).toHaveClass('down');\n });\n it('displays popover content within viewport', async () => {\n expect(popover).not.toHaveAttribute('direction');\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n const containerStyle = await popoverContainer.getComputedStyle();\n const maxHeight = parseInt(await getPopProperty('--comp-pop-max-height'));\n expect(parseInt(containerStyle.height)).toBeLessThan(400);\n expect(maxHeight).toBeLessThan(400);\n });\n });\n\n describe('when control element has more space above it', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <div style=\"height: 44px; width: 400px; background: black; position: fixed; top: 350px\" id=\"control\"></div>\n <q2-popover>\n <div style=\"height: 500px\"></div>\n </q2-popover>\n `,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n await page.$eval('q2-popover', (el: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n el.controlElement = controlElement;\n });\n });\n it('auto-determines the direction to be up', async () => {\n expect(popover).not.toHaveAttribute('direction');\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).not.toHaveClass('down');\n expect(popoverContainer).toHaveClass('up');\n });\n it('sets currentDirection state variable to up', async () => {\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).not.toHaveClass('down');\n expect(popoverContainer).toHaveClass('up');\n });\n it('displays popover content within viewport', async () => {\n expect(popover).not.toHaveAttribute('direction');\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n const containerStyle = await popoverContainer.getComputedStyle();\n const maxHeight = parseInt(await getPopProperty('--comp-pop-max-height'));\n expect(parseInt(containerStyle.height)).toBeLessThan(400);\n expect(maxHeight).toBeLessThan(400);\n });\n });\n\n describe('when page is resized', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <div style=\"height: 50px; \" id=\"control\"></div>\n <q2-popover block>\n <div style=\"height: 800px\"></div>\n <q2-popover>\n `,\n });\n await page.setViewport({ width: 800, height: 800 });\n await page.waitForChanges();\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n await page.$eval('q2-popover', (el: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n el.controlElement = controlElement;\n });\n });\n\n it('recalculates the width when block is true', async () => {\n expect(popover).not.toHaveAttribute('open');\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n expect(popover).toHaveAttribute('open');\n\n let width = await getPopProperty('--comp-pop-width');\n expect(parseInt(width)).toBeLessThan(800);\n\n await page.setViewport({ width: 200, height: 600 });\n await page.waitForChanges();\n\n width = await getPopProperty('--comp-pop-width');\n expect(parseInt(width)).toBeLessThan(200);\n });\n\n it('recalculates the max-height when page orientation changes', async () => {\n expect(popover).not.toHaveAttribute('open');\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n expect(popover).toHaveAttribute('open');\n\n let maxHeight = await getPopProperty('--comp-pop-max-height');\n expect(parseInt(maxHeight)).toBeLessThan(800);\n\n await page.setViewport({ width: 800, height: 600, isLandscape: true });\n await page.waitForChanges();\n\n maxHeight = await getPopProperty('--comp-pop-max-height');\n expect(parseInt(maxHeight)).toBeLessThan(600);\n });\n\n it('recalculates the max-height when the viewport is resized', async () => {\n expect(popover).not.toHaveAttribute('open');\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n expect(popover).toHaveAttribute('open');\n\n let maxHeight = await getPopProperty('--comp-pop-max-height');\n expect(parseInt(maxHeight)).toBeLessThan(800);\n\n await page.setViewport({ width: 800, height: 600 });\n await page.waitForChanges();\n\n maxHeight = await getPopProperty('--comp-pop-max-height');\n expect(parseInt(maxHeight)).toBeLessThan(600);\n });\n });\n\n describe('when page is scrolled', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <div style=\"height: 300px\"></div>\n <div style=\"height: 50px; width: 200px; background: black;\" id=\"control\"></div>\n <q2-popover>\n <div style=\"height: 800px\"></div>\n </q2-popover>\n <div> style=\"height: 500px\"</div>\n `,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n await page.$eval('q2-popover', (el: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n el.controlElement = controlElement;\n });\n });\n\n it('maintains its current direction until closed', async () => {\n expect(popover).not.toHaveAttribute('open');\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).toHaveClass('up');\n // Scroll down 300px\n await page.$eval('#control', () => {\n window.scrollBy(0, 300);\n window.visualViewport.dispatchEvent(new Event('scroll'));\n });\n await page.waitForChanges();\n expect(popoverContainer).toHaveClass('up');\n });\n });\n });\n\n describe('Accessibility', () => {\n it('does not hide q2-option elements from a screen reader (TCT-2080)', async () => {\n page = await setup({\n html: `\n <q2-popover open>\n <q2-option-list>\n <q2-option value=\"1\">Account 1</q2-option>\n <q2-option value=\"2\">Account 2</q2-option>\n <q2-option value=\"3\">Account 3</q2-option>\n </q2-option-list>\n <q2-popover>\n `,\n });\n\n const snapshot = await page.accessibility.snapshot({\n root: await page.$('q2-option'),\n });\n\n expect(snapshot.name).toEqual('Account 1');\n });\n });\n describe('Deprecations', () => {\n describe('calls console.warn for deprecated `minHeight` prop', () => {\n it('by using handleDeprecationWarning if set on popover element', async () => {\n const warnMock = jest.spyOn(console, 'warn');\n page = await setup({ html: `<q2-popover min-height=\"100\"></q2-popover>` });\n await page.waitForChanges();\n expect(warnMock).toHaveBeenCalledTimes(1);\n warnMock.mockReset();\n });\n it('by using handleDeprecationWarning if set after componentDidLoad', async () => {\n const warnMock = jest.spyOn(console, 'warn');\n page = await setup({ html: `<q2-popover></q2-popover>` });\n popover = await page.find('q2-popover');\n expect(warnMock).toHaveBeenCalledTimes(0);\n popover.setAttribute('min-height', '100');\n await page.waitForChanges();\n expect(warnMock).toHaveBeenCalledTimes(1);\n warnMock.mockReset();\n });\n });\n });\n\n describe('Regressions', () => {\n describe('TCT-2699', () => {\n it('calls viewportChanged when document is scrolled', async () => {\n page = await setup({\n html: `\n <div style=\"height: 3000px\">\n <div style=\"height: 50px;\" id=\"control\"></div>\n <q2-popover>\n <q2-option-list>\n <q2-option value=\"1\">Account 1</q2-option>\n <q2-option value=\"2\">Account 2</q2-option>\n <q2-option value=\"3\">Account 3</q2-option>\n </q2-option-list>\n <q2-popover>\n </div>\n `,\n });\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n\n await page.$eval('q2-popover', (element: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n element.controlElement = controlElement;\n });\n await page.waitForChanges();\n\n await popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-top')).toEqual('58px');\n\n await page.$eval('body', () => window.scrollTo(0, 300));\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-top')).toEqual('-242px');\n });\n\n it('calls viewportChanged when another element is scrolled', async () => {\n page = await setup({\n html: `\n <div style=\"height: 300px; overflow-y: auto;\" id=\"scroll\">\n <div style=\"height: 3000px;\">\n <div style=\"height: 50px;\" id=\"control\"></div>\n <q2-popover>\n <q2-option-list>\n <q2-option value=\"1\">Account 1</q2-option>\n <q2-option value=\"2\">Account 2</q2-option>\n <q2-option value=\"3\">Account 3</q2-option>\n </q2-option-list>\n <q2-popover>\n </div>\n </div>\n `,\n });\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n\n await page.$eval('q2-popover', (element: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n element.controlElement = controlElement;\n });\n await page.waitForChanges();\n\n await popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-top')).toEqual('58px');\n\n await page.$eval('#scroll', element => element.scrollTo(0, 500));\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-top')).toEqual('-442px');\n });\n\n it('correctly sets the left direction on horizontal scroll', async () => {\n page = await setup({\n html: `\n <div style=\"width: 300px; overflow-x: auto;\" id=\"scroll\">\n <div style=\"width: 3000px;\">\n <div style=\"height: 50px;\" id=\"control\"></div>\n <q2-popover align=\"left\" style=\"width=\"200px\">\n <q2-option-list>\n <q2-option value=\"1\">Account 1</q2-option>\n <q2-option value=\"2\">Account 2</q2-option>\n <q2-option value=\"3\">Account 3</q2-option>\n </q2-option-list>\n <q2-popover>\n </div>\n </div>\n `,\n });\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n\n await page.$eval('q2-popover', (element: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n element.controlElement = controlElement;\n });\n await page.waitForChanges();\n\n await popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-left')).toEqual('8px');\n\n await page.$eval('#scroll', element => element.scrollTo(500, 0));\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-left')).toEqual('-492px');\n });\n\n it('correctly sets the right direction on horizontal scroll', async () => {\n page = await setup({\n html: `\n <div style=\"width: 300px; overflow-x: auto;\" id=\"scroll\">\n <div style=\"width: 3000px;\">\n <div style=\"height: 50px;\" id=\"control\"></div>\n <q2-popover align=\"right\" style=\"width=\"200px\">\n <q2-option-list>\n <q2-option value=\"1\">Account 1</q2-option>\n <q2-option value=\"2\">Account 2</q2-option>\n <q2-option value=\"3\">Account 3</q2-option>\n </q2-option-list>\n <q2-popover>\n </div>\n </div>\n `,\n });\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n\n await page.$eval('q2-popover', (element: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n element.controlElement = controlElement;\n });\n await page.waitForChanges();\n\n await popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-right')).toEqual('-2208px');\n\n await page.$eval('#scroll', element => element.scrollTo(500, 0));\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-right')).toEqual('-1708px');\n });\n\n it(\"doesn't update the popover direction on scroll\", async () => {\n page = await setup({\n html: `\n <div style=\"height: 3000px\">\n <div style=\"height: 50px; margin-top: 400px\" id=\"control\"></div>\n <q2-popover>\n <q2-option-list>\n <q2-option value=\"1\">Account 1</q2-option>\n <q2-option value=\"2\">Account 2</q2-option>\n <q2-option value=\"3\">Account 3</q2-option>\n </q2-option-list>\n <q2-popover>\n </div>\n `,\n });\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n\n await page.$eval('q2-popover', (element: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n element.controlElement = controlElement;\n });\n await page.waitForChanges();\n\n await popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('up');\n expect(await getPopProperty('--comp-pop-bottom')).toEqual('200px');\n\n await page.$eval('body', () => window.scrollTo(0, 300));\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('up');\n expect(await getPopProperty('--comp-pop-bottom')).toEqual('500px');\n });\n });\n });\n});\n"]}
1
+ {"version":3,"file":"q2-popover-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-popover-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { getListOfStyleCompilationIssues, getNestedElementProperty, setup } from '../helpers';\nimport { Q2Popover } from '../../src/components/q2-popover/q2-popover';\n\ndescribe('q2-popover', () => {\n let page: E2EPage;\n let popover: E2EElement;\n let popoverContainer: E2EElement;\n\n const dispatchPopoverState = async (state: { open: boolean }) => {\n await page.$eval(\n 'q2-popover',\n (el, { open }) => el.dispatchEvent(new CustomEvent('popoverState', { detail: { open } })),\n state\n );\n };\n\n const getPopProperty = async (propertyName: string) => {\n return page.$eval(\n 'q2-popover',\n (el, propName) =>\n el.shadowRoot.querySelector<HTMLDivElement>('.container').style.getPropertyValue(propName),\n propertyName\n );\n };\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-popover></q2-popover>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-popover')).toHaveLength(0);\n });\n\n describe('Props', () => {\n describe('open', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-popover>\n <div style=\"height: 400px; width: 200px\"></div>\n </q2-popover>\n `,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n await page.$eval('q2-popover', (el: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n el.controlElement = controlElement;\n });\n });\n\n it('opens the popover when the open property is changed to true', async () => {\n const stateSpy = await popover.spyOnEvent('popoverStateChanged');\n\n expect((await popoverContainer.getComputedStyle()).display).toEqual('none');\n expect(popover).not.toHaveAttribute('open');\n\n popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n expect((await popoverContainer.getComputedStyle()).display).toEqual('block');\n expect(stateSpy).toHaveReceivedEventDetail({ open: true });\n });\n\n it('closes the popover when the open property is changed to false', async () => {\n const stateSpy = await popover.spyOnEvent('popoverStateChanged');\n popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect((await popoverContainer.getComputedStyle()).display).toEqual('block');\n expect(popover).toHaveAttribute('open');\n\n popover.setProperty('open', false);\n await page.waitForChanges();\n\n expect((await popoverContainer.getComputedStyle()).display).toEqual('none');\n expect(popover).not.toHaveAttribute('open');\n expect(stateSpy).toHaveReceivedEventDetail({ open: false });\n });\n\n it('adds and removes the currentDirection and --comp-pop-max-height property', async () => {\n const stateSpy = await popover.spyOnEvent('popoverStateChanged');\n\n popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(popover).toHaveAttribute('open');\n expect(await getPopProperty('--comp-pop-max-height')).toBe('390px');\n\n popover.setProperty('open', false);\n await page.waitForChanges();\n\n expect(popover).not.toHaveAttribute('open');\n expect(stateSpy).toHaveReceivedEventDetail({ open: false });\n expect(popoverContainer).not.toHaveClass('down');\n expect(await getPopProperty('--comp-pop-max-height')).toBe('');\n });\n });\n\n describe('direction', () => {\n describe('when provided a valid value', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-popover direction=\"up\" id=\"control\">\n <div style=\"height: 400px; width: 200px\"></div>\n </q2-popover>\n `,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n });\n it('sets currentDirection to provided value', async () => {\n expect((await popoverContainer.getComputedStyle()).display).toEqual('none');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect((await popoverContainer.getComputedStyle()).display).toEqual('block');\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).toHaveClass('up');\n });\n });\n\n describe('when provided an invalid value', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-popover direction=\"gibberish\" id=\"control\">\n <div style=\"height: 400px; width: 200px\"></div>\n </q2-popover>\n `,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n });\n it('ignores the direction and uses automated behavior', async () => {\n expect((await popoverContainer.getComputedStyle()).display).toEqual('none');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect((await popoverContainer.getComputedStyle()).display).toEqual('block');\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).toHaveClass('down');\n });\n });\n });\n });\n\n describe('Events', () => {\n describe('popoverState', () => {\n it('opens the popover when open is passed as true', async () => {\n page = await setup({\n html: `<q2-popover></q2-popover>`,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n const stateSpy = await popover.spyOnEvent('popoverStateChanged');\n\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n expect(stateSpy).toHaveReceivedEventDetail({ open: true });\n });\n\n it('closes the popover when open is passed as false', async () => {\n page = await setup({\n html: `<q2-popover open></q2-popover>`,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n const stateSpy = await popover.spyOnEvent('popoverStateChanged');\n\n expect(popover).toHaveAttribute('open');\n\n await dispatchPopoverState({ open: false });\n await page.waitForChanges();\n\n expect(popover).not.toHaveAttribute('open');\n expect(stateSpy).toHaveReceivedEventDetail({ open: false });\n });\n });\n });\n\n describe('Methods', () => {\n describe('toggle', () => {\n it('toggles the value of open', async () => {\n const popover = new Q2Popover();\n expect(popover.open).toBeUndefined();\n popover.toggle();\n expect(popover.open).toBe(true);\n popover.toggle();\n expect(popover.open).toBe(false);\n });\n });\n\n describe('scrollContainerTo', () => {\n it('scrolls the container to the given position', async () => {\n page = await setup({\n html: `\n <q2-popover>\n <div style=\"height: 2000px\"></div>\n </q2-popover>\n `,\n });\n await page.setViewport({ width: 800, height: 400 });\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n\n popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n\n await popover.callMethod('scrollContainerTo', { top: 1000 });\n await page.waitForChanges();\n\n expect(await getNestedElementProperty(page, ['q2-popover', '.container'], 'scrollTop')).toBe(1000);\n\n await popover.callMethod('scrollContainerTo', { top: 0 });\n await page.waitForChanges();\n\n expect(await getNestedElementProperty(page, ['q2-popover', '.container'], 'scrollTop')).toBe(0);\n });\n });\n });\n\n describe('determinePopDirection', () => {\n describe('when control element has more space below it', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <div style=\"height: 44px; width: 400px; background: black; position: fixed; top: 10px;\" id=\"control\"></div>\n <q2-popover>\n <div style=\"height: 500px\"></div>\n </q2-popover>\n `,\n });\n // await setBodyHeight();\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n await page.$eval('q2-popover', (el: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n el.controlElement = controlElement;\n });\n });\n it('auto-determines the direction to be down', async () => {\n expect(popover).not.toHaveAttribute('direction');\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).not.toHaveClass('up');\n expect(popoverContainer).toHaveClass('down');\n });\n it('sets currentDirection state variable to down', async () => {\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).not.toHaveClass('up');\n expect(popoverContainer).toHaveClass('down');\n });\n it('displays popover content within viewport', async () => {\n expect(popover).not.toHaveAttribute('direction');\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n const containerStyle = await popoverContainer.getComputedStyle();\n const maxHeight = parseInt(await getPopProperty('--comp-pop-max-height'));\n expect(parseInt(containerStyle.height)).toBeLessThan(400);\n expect(maxHeight).toBeLessThan(400);\n });\n });\n\n describe('when control element has more space above it', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <div style=\"height: 44px; width: 400px; background: black; position: fixed; top: 350px\" id=\"control\"></div>\n <q2-popover>\n <div style=\"height: 500px\"></div>\n </q2-popover>\n `,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n await page.$eval('q2-popover', (el: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n el.controlElement = controlElement;\n });\n });\n it('auto-determines the direction to be up', async () => {\n expect(popover).not.toHaveAttribute('direction');\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).not.toHaveClass('down');\n expect(popoverContainer).toHaveClass('up');\n });\n it('sets currentDirection state variable to up', async () => {\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).not.toHaveClass('down');\n expect(popoverContainer).toHaveClass('up');\n });\n it('displays popover content within viewport', async () => {\n expect(popover).not.toHaveAttribute('direction');\n expect(popover).not.toHaveAttribute('open');\n\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n\n const containerStyle = await popoverContainer.getComputedStyle();\n const maxHeight = parseInt(await getPopProperty('--comp-pop-max-height'));\n expect(parseInt(containerStyle.height)).toBeLessThan(400);\n expect(maxHeight).toBeLessThan(400);\n });\n });\n\n describe('when page is resized', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <div style=\"height: 50px; \" id=\"control\"></div>\n <q2-popover block>\n <div style=\"height: 800px\"></div>\n <q2-popover>\n `,\n });\n await page.setViewport({ width: 800, height: 800 });\n await page.waitForChanges();\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n await page.$eval('q2-popover', (el: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n el.controlElement = controlElement;\n });\n });\n\n it('recalculates the width when block is true', async () => {\n expect(popover).not.toHaveAttribute('open');\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n expect(popover).toHaveAttribute('open');\n\n let width = await getPopProperty('--comp-pop-width');\n expect(parseInt(width)).toBeLessThan(800);\n\n await page.setViewport({ width: 200, height: 600 });\n await page.waitForChanges();\n\n width = await getPopProperty('--comp-pop-width');\n expect(parseInt(width)).toBeLessThan(200);\n });\n\n it('recalculates the max-height when page orientation changes', async () => {\n expect(popover).not.toHaveAttribute('open');\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n expect(popover).toHaveAttribute('open');\n\n let maxHeight = await getPopProperty('--comp-pop-max-height');\n expect(parseInt(maxHeight)).toBeLessThan(800);\n\n await page.setViewport({ width: 800, height: 600, isLandscape: true });\n await page.waitForChanges();\n\n maxHeight = await getPopProperty('--comp-pop-max-height');\n expect(parseInt(maxHeight)).toBeLessThan(600);\n });\n\n it('recalculates the max-height when the viewport is resized', async () => {\n expect(popover).not.toHaveAttribute('open');\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n expect(popover).toHaveAttribute('open');\n\n let maxHeight = await getPopProperty('--comp-pop-max-height');\n expect(parseInt(maxHeight)).toBeLessThan(800);\n\n await page.setViewport({ width: 800, height: 600 });\n await page.waitForChanges();\n\n maxHeight = await getPopProperty('--comp-pop-max-height');\n expect(parseInt(maxHeight)).toBeLessThan(600);\n });\n });\n\n describe('when page is scrolled', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <div style=\"height: 300px\"></div>\n <div style=\"height: 50px; width: 200px; background: black;\" id=\"control\"></div>\n <q2-popover>\n <div style=\"height: 800px\"></div>\n </q2-popover>\n <div> style=\"height: 500px\"</div>\n `,\n });\n await page.setViewport({ width: 800, height: 400 });\n await page.waitForChanges();\n\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n await page.$eval('q2-popover', (el: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n el.controlElement = controlElement;\n });\n });\n\n it('maintains its current direction until closed', async () => {\n expect(popover).not.toHaveAttribute('open');\n await dispatchPopoverState({ open: true });\n await page.waitForChanges();\n expect(popover).toHaveAttribute('open');\n expect(popoverContainer).toHaveClass('up');\n // Scroll down 300px\n await page.$eval('#control', () => {\n window.scrollBy(0, 300);\n window.visualViewport.dispatchEvent(new Event('scroll'));\n });\n await page.waitForChanges();\n expect(popoverContainer).toHaveClass('up');\n });\n });\n });\n\n describe('Accessibility', () => {\n it('does not hide q2-option elements from a screen reader (TCT-2080)', async () => {\n page = await setup({\n html: `\n <q2-popover open>\n <q2-option-list>\n <q2-option value=\"1\">Account 1</q2-option>\n <q2-option value=\"2\">Account 2</q2-option>\n <q2-option value=\"3\">Account 3</q2-option>\n </q2-option-list>\n <q2-popover>\n `,\n });\n\n const snapshot = await page.accessibility.snapshot({\n root: await page.$('q2-option'),\n });\n\n expect(snapshot.name).toEqual('Account 1');\n });\n });\n describe('Deprecations', () => {\n describe('calls console.warn for deprecated `minHeight` prop', () => {\n it('by using handleDeprecationWarning if set on popover element', async () => {\n const warnMock = jest.spyOn(console, 'warn');\n page = await setup({ html: `<q2-popover min-height=\"100\"></q2-popover>` });\n await page.waitForChanges();\n expect(warnMock).toHaveBeenCalledTimes(1);\n warnMock.mockReset();\n });\n it('by using handleDeprecationWarning if set after componentDidLoad', async () => {\n const warnMock = jest.spyOn(console, 'warn');\n page = await setup({ html: `<q2-popover></q2-popover>` });\n popover = await page.find('q2-popover');\n expect(warnMock).toHaveBeenCalledTimes(0);\n popover.setAttribute('min-height', '100');\n await page.waitForChanges();\n expect(warnMock).toHaveBeenCalledTimes(1);\n warnMock.mockReset();\n });\n });\n });\n\n describe('Regressions', () => {\n describe('TCT-2699', () => {\n it('calls viewportChanged when document is scrolled', async () => {\n page = await setup({\n html: `\n <div style=\"height: 3000px\">\n <div style=\"height: 50px;\" id=\"control\"></div>\n <q2-popover>\n <q2-option-list>\n <q2-option value=\"1\">Account 1</q2-option>\n <q2-option value=\"2\">Account 2</q2-option>\n <q2-option value=\"3\">Account 3</q2-option>\n </q2-option-list>\n <q2-popover>\n </div>\n `,\n });\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n\n await page.$eval('q2-popover', (element: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n element.controlElement = controlElement;\n });\n await page.waitForChanges();\n\n await popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-top')).toEqual('58px');\n\n await page.$eval('body', () => window.scrollTo(0, 300));\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-top')).toEqual('-242px');\n });\n\n it('calls viewportChanged when another element is scrolled', async () => {\n page = await setup({\n html: `\n <div style=\"height: 300px; overflow-y: auto;\" id=\"scroll\">\n <div style=\"height: 3000px;\">\n <div style=\"height: 50px;\" id=\"control\"></div>\n <q2-popover>\n <q2-option-list>\n <q2-option value=\"1\">Account 1</q2-option>\n <q2-option value=\"2\">Account 2</q2-option>\n <q2-option value=\"3\">Account 3</q2-option>\n </q2-option-list>\n <q2-popover>\n </div>\n </div>\n `,\n });\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n\n await page.$eval('q2-popover', (element: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n element.controlElement = controlElement;\n });\n await page.waitForChanges();\n\n await popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-top')).toEqual('58px');\n\n await page.$eval('#scroll', element => element.scrollTo(0, 500));\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-top')).toEqual('-442px');\n });\n\n it('correctly sets the left direction on horizontal scroll', async () => {\n page = await setup({\n html: `\n <div style=\"width: 300px; overflow-x: auto;\" id=\"scroll\">\n <div style=\"width: 3000px;\">\n <div style=\"height: 50px;\" id=\"control\"></div>\n <q2-popover align=\"left\" style=\"width=\"200px\">\n <q2-option-list>\n <q2-option value=\"1\">Account 1</q2-option>\n <q2-option value=\"2\">Account 2</q2-option>\n <q2-option value=\"3\">Account 3</q2-option>\n </q2-option-list>\n <q2-popover>\n </div>\n </div>\n `,\n });\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n\n await page.$eval('q2-popover', (element: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n element.controlElement = controlElement;\n });\n await page.waitForChanges();\n\n await popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-left')).toEqual('8px');\n\n await page.$eval('#scroll', element => element.scrollTo(500, 0));\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-left')).toEqual('-492px');\n });\n\n it('correctly sets the right direction on horizontal scroll', async () => {\n page = await setup({\n html: `\n <div style=\"width: 300px; overflow-x: auto;\" id=\"scroll\">\n <div style=\"width: 3000px;\">\n <div style=\"height: 50px;\" id=\"control\"></div>\n <q2-popover align=\"right\" style=\"width=\"200px\">\n <q2-option-list>\n <q2-option value=\"1\">Account 1</q2-option>\n <q2-option value=\"2\">Account 2</q2-option>\n <q2-option value=\"3\">Account 3</q2-option>\n </q2-option-list>\n <q2-popover>\n </div>\n </div>\n `,\n });\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n\n await page.$eval('q2-popover', (element: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n element.controlElement = controlElement;\n });\n await page.waitForChanges();\n\n await popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-right')).toEqual('-2208px');\n\n await page.$eval('#scroll', element => element.scrollTo(500, 0));\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('down');\n expect(await getPopProperty('--comp-pop-right')).toEqual('-1708px');\n });\n\n it(\"doesn't update the popover direction on scroll\", async () => {\n page = await setup({\n html: `\n <div style=\"height: 3000px\">\n <div style=\"height: 50px; margin-top: 400px\" id=\"control\"></div>\n <q2-popover>\n <q2-option-list>\n <q2-option value=\"1\">Account 1</q2-option>\n <q2-option value=\"2\">Account 2</q2-option>\n <q2-option value=\"3\">Account 3</q2-option>\n </q2-option-list>\n <q2-popover>\n </div>\n `,\n });\n popover = await page.find('q2-popover');\n popoverContainer = await page.find('q2-popover >>> .container');\n\n await page.$eval('q2-popover', (element: HTMLQ2PopoverElement) => {\n const controlElement = document.querySelector<HTMLElement>('#control');\n element.controlElement = controlElement;\n });\n await page.waitForChanges();\n\n await popover.setProperty('open', true);\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('up');\n expect(await getPopProperty('--comp-pop-bottom')).toEqual('200px');\n\n await page.$eval('body', () => window.scrollTo(0, 300));\n await page.waitForChanges();\n\n expect(popoverContainer).toHaveClass('up');\n expect(await getPopProperty('--comp-pop-bottom')).toEqual('500px');\n });\n });\n });\n});\n"]}
@@ -1,4 +1,4 @@
1
- import { setup, dispatchEvent, getActiveElementTestId } from "../helpers";
1
+ import { setup, dispatchEvent, getActiveElementTestId, getListOfStyleCompilationIssues } from "../helpers";
2
2
  describe('q2-radio-group', () => {
3
3
  let page;
4
4
  let radioGroup;
@@ -15,6 +15,10 @@ describe('q2-radio-group', () => {
15
15
  await page.waitForChanges();
16
16
  return page;
17
17
  };
18
+ it('properly compiles CSS vars and functions', async () => {
19
+ const page = await setup({ html: '<q2-radio-group></q2-radio-group>' });
20
+ expect(await getListOfStyleCompilationIssues(page, 'q2-radio-group')).toHaveLength(0);
21
+ });
18
22
  it('renders with label', async function () {
19
23
  page = await setupPage('label="My Radio Group"', 0);
20
24
  const label = await page.find('q2-radio-group >>> legend');
@@ -1 +1 @@
1
- {"version":3,"file":"q2-radio-group-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-radio-group-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { setup, dispatchEvent, getActiveElementTestId } from '../helpers';\n\ndescribe('q2-radio-group', () => {\n let page: E2EPage;\n let radioGroup: E2EElement;\n\n const setupPage = async (props: string = '', numberOfRadios: number = 3, checkedRadios: number[] = []) => {\n props = props ? ` ${props}` : '';\n const radios = Array.from(\n { length: numberOfRadios },\n (_, i) =>\n `<q2-radio value=\"${i + 1}\" label=\"${i + 1}label\"${\n checkedRadios.includes(i + 1) ? ' checked=\"true\"' : ''\n }></q2-radio>`\n ).join('');\n const page = await setup({\n html: `\n <q2-radio-group \"${props}>\n ${radios}\n </q2-radio-group>\n `,\n });\n await page.waitForChanges();\n\n return page;\n };\n\n it('renders with label', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\"', 0);\n const label = await page.find('q2-radio-group >>> legend');\n\n expect(label).not.toBeNull();\n expect(label.innerText).toEqual('My Radio Group');\n });\n\n it('assigns name to all radios and updates if name changes', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" name=\"testname\"', 2);\n let firstRadio = await page.find('q2-radio:nth-child(1)');\n let secondRadio = await page.find('q2-radio:nth-child(2)');\n\n expect(firstRadio.getAttribute('name')).toEqual('testname');\n expect(secondRadio.getAttribute('name')).toEqual('testname');\n\n const radioGroup = await page.find('q2-radio-group');\n radioGroup.setProperty('name', 'newname');\n\n await page.waitForChanges();\n\n firstRadio = await page.find('q2-radio:nth-child(1)');\n secondRadio = await page.find('q2-radio:nth-child(2)');\n\n expect(firstRadio.getAttribute('name')).toEqual('newname');\n expect(secondRadio.getAttribute('name')).toEqual('newname');\n });\n\n it('assigns checked value on init and whenever value changes', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" name=\"testname\" value=\"2\"', 2);\n let firstRadio = await page.find('q2-radio:nth-child(1)');\n let secondRadio = await page.find('q2-radio:nth-child(2)');\n\n expect(firstRadio.getAttribute('checked')).toEqual(null);\n expect(secondRadio.getAttribute('checked')).toEqual('');\n\n const radioGroup = await page.find('q2-radio-group');\n radioGroup.setProperty('value', '1');\n\n await page.waitForChanges();\n\n firstRadio = await page.find('q2-radio:nth-child(1)');\n secondRadio = await page.find('q2-radio:nth-child(2)');\n\n expect(firstRadio.getAttribute('checked')).toEqual('');\n expect(secondRadio.getAttribute('checked')).toEqual(null);\n });\n\n it('assigns checked value on init for individual radio(s) that have checked atttribute === true, and no value is set for radio-group', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" name=\"testname\"', 3, [2]);\n let firstRadio = await page.find('q2-radio:nth-child(1)');\n let secondRadio = await page.find('q2-radio:nth-child(2)');\n let thirdRadio = await page.find('q2-radio:nth-child(3)');\n\n expect(firstRadio.getAttribute('checked')).toEqual(null);\n expect(secondRadio.getAttribute('checked')).toEqual('');\n expect(thirdRadio.getAttribute('checked')).toEqual(null);\n\n const radioGroup = await page.find('q2-radio-group');\n radioGroup.setProperty('value', '3');\n\n await page.waitForChanges();\n\n firstRadio = await page.find('q2-radio:nth-child(1)');\n secondRadio = await page.find('q2-radio:nth-child(2)');\n thirdRadio = await page.find('q2-radio:nth-child(3)');\n\n expect(firstRadio.getAttribute('checked')).toEqual(null);\n expect(secondRadio.getAttribute('checked')).toEqual(null);\n expect(thirdRadio.getAttribute('checked')).toEqual('');\n });\n\n it('assigns checked value on init for when radio-group value is set, and ignores / removes checked value individual radio preset checked={true}', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" name=\"testname\" value=\"2\"', 3, [1, 3]);\n let firstRadio = await page.find('q2-radio:nth-child(1)');\n let secondRadio = await page.find('q2-radio:nth-child(2)');\n let thirdRadio = await page.find('q2-radio:nth-child(3)');\n\n expect(firstRadio.getAttribute('checked')).toEqual(null);\n expect(secondRadio.getAttribute('checked')).toEqual('');\n expect(thirdRadio.getAttribute('checked')).toEqual(null);\n\n const radioGroup = await page.find('q2-radio-group');\n radioGroup.setProperty('value', '3');\n\n await page.waitForChanges();\n\n firstRadio = await page.find('q2-radio:nth-child(1)');\n secondRadio = await page.find('q2-radio:nth-child(2)');\n thirdRadio = await page.find('q2-radio:nth-child(3)');\n\n expect(firstRadio.getAttribute('checked')).toEqual(null);\n expect(secondRadio.getAttribute('checked')).toEqual(null);\n expect(thirdRadio.getAttribute('checked')).toEqual('');\n });\n\n it('does not assign \"checked\" value on init for when radio-group value is not set, or any q2-radio preset checked={true}', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" name=\"testname\"');\n let firstRadio = await page.find('q2-radio:nth-child(1)');\n let secondRadio = await page.find('q2-radio:nth-child(2)');\n let thirdRadio = await page.find('q2-radio:nth-child(3)');\n\n expect(firstRadio.getAttribute('checked')).toEqual(null);\n expect(secondRadio.getAttribute('checked')).toEqual(null);\n expect(thirdRadio.getAttribute('checked')).toEqual(null);\n\n const radioGroup = await page.find('q2-radio-group');\n radioGroup.setProperty('value', '3');\n\n await page.waitForChanges();\n\n firstRadio = await page.find('q2-radio:nth-child(1)');\n secondRadio = await page.find('q2-radio:nth-child(2)');\n thirdRadio = await page.find('q2-radio:nth-child(3)');\n\n expect(firstRadio.getAttribute('checked')).toEqual(null);\n expect(secondRadio.getAttribute('checked')).toEqual(null);\n expect(thirdRadio.getAttribute('checked')).toEqual('');\n });\n\n it('will update name, checked and disabled on new radio if added dynamically (mutation observer)', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" disabled name=\"testname\" value=\"3\"');\n await page.$eval('q2-radio-group', radioGroup => {\n const newRadio = document.createElement('q2-radio');\n newRadio.label = '3label';\n newRadio.value = '3';\n radioGroup.appendChild(newRadio);\n });\n await page.waitForChanges();\n const thirdRadio = await page.find('q2-radio:nth-child(3');\n\n expect(thirdRadio.getAttribute('name')).toEqual('testname');\n expect(thirdRadio.getAttribute('checked')).toEqual('');\n expect(await thirdRadio.getProperty('groupDisabled')).toEqual(true);\n });\n\n it('assigns tabIndex value of 0 to first radio in group, and then -1 for all following radios on init, and assigns -1 to all that are not selected there after', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" name=\"testname\"');\n const firstRadio = await page.find('q2-radio:nth-child(1)');\n const secondRadio = await page.find('q2-radio:nth-child(2)');\n const thirdRadio = await page.find('q2-radio:nth-child(3)');\n\n expect(await firstRadio.getProperty('tabIndex')).toEqual(0);\n expect(await secondRadio.getProperty('tabIndex')).toEqual(-1);\n expect(await thirdRadio.getProperty('tabIndex')).toEqual(-1);\n\n const radioGroup = await page.find('q2-radio-group');\n radioGroup.setProperty('value', '2');\n await page.waitForChanges();\n\n expect(await firstRadio.getProperty('tabIndex')).toEqual(-1);\n expect(await secondRadio.getProperty('tabIndex')).toEqual(0);\n expect(await thirdRadio.getProperty('tabIndex')).toEqual(-1);\n\n radioGroup.setProperty('value', '3');\n await page.waitForChanges();\n\n expect(await firstRadio.getProperty('tabIndex')).toEqual(-1);\n expect(await secondRadio.getProperty('tabIndex')).toEqual(-1);\n expect(await thirdRadio.getProperty('tabIndex')).toEqual(0);\n });\n\n it('disables all radios via groupDisable when radio group is disabled', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" name=\"testname\" value=\"2\"', 2);\n let firstRadioInnerInput = await page.find('q2-radio:nth-child(1) >>> input ');\n let secondRadioInnerInput = await page.find('q2-radio:nth-child(2) >>> input');\n\n expect(firstRadioInnerInput.getAttribute('disabled')).toEqual(null);\n expect(secondRadioInnerInput.getAttribute('disabled')).toEqual(null);\n\n const radioGroup = await page.find('q2-radio-group');\n radioGroup.setProperty('disabled', true);\n await page.waitForChanges();\n firstRadioInnerInput = await page.find('q2-radio:nth-child(1) >>> input');\n secondRadioInnerInput = await page.find('q2-radio:nth-child(2) >>> input ');\n\n expect(firstRadioInnerInput.getAttribute('disabled')).toEqual('');\n expect(secondRadioInnerInput.getAttribute('disabled')).toEqual('');\n });\n\n describe('Props', () => {\n const getActiveElementValue = async (page: E2EPage) => {\n return page.$eval('body', () => document.activeElement.getAttribute('value'));\n };\n\n describe('tilelayout', () => {\n it('converts to tileLayout=true when provided', async () => {\n page = await setupPage('label=\"My Radio Group\" tilelayout');\n radioGroup = await page.find('q2-radio-group');\n\n expect(radioGroup).toHaveAttribute('tile-layout');\n expect(await radioGroup.getProperty('tilelayout')).toBeUndefined();\n });\n\n it('converts to tileLayout=false when provided as \"false\"', async () => {\n page = await setupPage('label=\"My Radio Group\" tilelayout=\"false\"');\n radioGroup = await page.find('q2-radio-group');\n\n expect(radioGroup).not.toHaveAttribute('tile-layout');\n expect(await radioGroup.getProperty('tilelayout')).toBeUndefined();\n });\n });\n\n describe('readonly', () => {\n describe('set to true', () => {\n it('on load child q2-radio components are groupReadonly', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" readonly');\n const radios = await page.findAll('q2-radio');\n\n expect(radios.every(async radio => (await radio.getProperty('groupReadonly')) === true)).toBe(true);\n });\n it('after load child q2-radio components are groupReadonly', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\"');\n const radioGroup = await page.find('q2-radio-group');\n const radios = await page.findAll('q2-radio');\n\n expect(radios.every(async radio => (await radio.getProperty('groupReadonly')) === false)).toBe(\n true\n );\n\n radioGroup.setAttribute('readonly', 'true');\n await page.waitForChanges();\n\n expect(radios.every(async radio => (await radio.getProperty('groupReadonly')) === true)).toBe(true);\n });\n it('allows movement between radio buttons without selecting them', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" value=\"2\" readonly');\n const radioGroup = await page.find('q2-radio-group');\n await radioGroup.focus();\n\n expect(await getActiveElementValue(page)).toEqual('2');\n\n await dispatchEvent(page, 'q2-radio[value=\"2\"]', 'keydown', {\n key: 'ArrowDown',\n bubbles: true,\n });\n await page.waitForChanges();\n\n expect(await getActiveElementValue(page)).toEqual('3');\n expect(await radioGroup.getProperty('value')).toEqual('2');\n\n await dispatchEvent(page, 'q2-radio[value=\"3\"]', 'keydown', {\n key: 'ArrowUp',\n bubbles: true,\n });\n await page.waitForChanges();\n\n expect(await getActiveElementValue(page)).toEqual('2');\n expect(await radioGroup.getProperty('value')).toEqual('2');\n\n await dispatchEvent(page, 'q2-radio[value=\"2\"]', 'keydown', {\n key: 'ArrowUp',\n bubbles: true,\n });\n await page.waitForChanges();\n\n expect(await getActiveElementValue(page)).toEqual('1');\n expect(await radioGroup.getProperty('value')).toEqual('2');\n });\n\n it('allows clicking radio buttons without selecting them', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" value=\"2\" readonly');\n const radioGroup = await page.find('q2-radio-group');\n const radios = await page.findAll('q2-radio');\n await radios[0].click();\n\n expect(await getActiveElementValue(page)).toEqual('1');\n expect(await radioGroup.getProperty('value')).toEqual('2');\n });\n });\n describe('set to false', () => {\n it('on load child q2-radio components are NOT groupReadonly', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\"');\n const radios = await page.findAll('q2-radio');\n\n expect(radios.every(async radio => (await radio.getProperty('groupReadonly')) === false)).toBe(\n true\n );\n });\n it('after load child q2-radio components are NOT groupReadonly', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" readonly');\n const radioGroup = await page.find('q2-radio-group');\n const radios = await page.findAll('q2-radio');\n\n expect(radios.every(async radio => (await radio.getProperty('groupReadonly')) === true)).toBe(true);\n\n radioGroup.setAttribute('groupReadonly', 'false');\n await page.waitForChanges();\n\n expect(radios.every(async radio => (await radio.getProperty('groupReadonly')) === false)).toBe(\n true\n );\n });\n });\n });\n });\n\n it('when a radio is selected radio group emits change event', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" name=\"testname\" value=\"2\"', 2);\n const radioGroup = await page.find('q2-radio-group');\n const changeSpy = await radioGroup.spyOnEvent('change');\n await dispatchEvent(page, ['q2-radio:nth-child(1)', 'label'], 'click');\n\n // change event is fired with appropriate value\n expect(changeSpy).toHaveReceivedEventDetail({ value: '1' });\n\n const value = await radioGroup.getProperty('value');\n\n // value automatically updated by default change handler\n expect(value).toEqual('1');\n });\n\n it('can override default on change', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" name=\"testname\" value=\"2\"', 2);\n const radioGroup = await page.find('q2-radio-group');\n const changeSpy = await radioGroup.spyOnEvent('change');\n await page.$eval('q2-radio-group', radioGroup => {\n (radioGroup as HTMLQ2RadioGroupElement).onchange = function (event) {\n event.stopPropagation();\n // do nothing\n };\n });\n await dispatchEvent(page, ['q2-radio:nth-child(1)', 'label'], 'click');\n\n // change event is fired with appropriate value\n expect(changeSpy).toHaveReceivedEventDetail({ value: '1' });\n\n const value = await radioGroup.getProperty('value');\n\n expect(value).toEqual('2');\n });\n\n it('allows spacebar to select first option when focused and no options are selected', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" name=\"testname\"', 2);\n const firstRadio = await page.find('q2-radio');\n const firstRadioInput = await page.find('q2-radio >>> input');\n\n expect(firstRadio.getAttribute('checked')).toEqual(null);\n\n await firstRadioInput.press(' ');\n await page.waitForChanges();\n\n expect(await firstRadio.getProperty('checked')).toEqual(true);\n });\n it('should render a localized optional string when the optional attribute is passed', async function (): Promise<void> {\n page = await setupPage('label=\"foo\" name=\"testname\" optional', 2);\n const label = await page.find('q2-radio-group >>> legend');\n\n // a localized optional is shown in the label\n expect(label.innerText.trim()).toEqual('footecton.element.input.optional');\n });\n it('should show a tile format when tile option is passed', async (): Promise<void> => {\n page = await setupPage('label=\"My Radio Group\" name=\"testname\"', 2);\n let svgCheckbox = await page.findAll('q2-radio >>> svg');\n let firstRadio = await page.find('q2-radio >>> div');\n\n expect(svgCheckbox.length).toEqual(2);\n expect(firstRadio.classList.contains('radio-container')).toBeTruthy();\n\n const radioGroup = await page.find('q2-radio-group');\n radioGroup.setAttribute('tilelayout', 'true');\n await page.waitForChanges();\n svgCheckbox = await page.findAll('q2-radio >>> svg');\n firstRadio = await page.find('q2-radio >>> div');\n\n expect(svgCheckbox.length).toEqual(0);\n expect(firstRadio.classList.contains('radio-tile')).toBeTruthy();\n });\n\n it('handles keyboard navigation', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" name=\"testname\" value=\"1\"', 2);\n let firstRadio = await page.find('q2-radio:nth-child(1)');\n let secondRadio = await page.find('q2-radio:nth-child(2)');\n await page.waitForChanges();\n\n expect(firstRadio.getAttribute('checked')).toEqual('');\n expect(secondRadio.getAttribute('checked')).toEqual(null);\n\n await dispatchEvent(page, ['q2-radio-group'], 'keydown', {\n key: 'ArrowDown',\n });\n firstRadio = await page.find('q2-radio:nth-child(1)');\n secondRadio = await page.find('q2-radio:nth-child(2)');\n\n expect(firstRadio.getAttribute('checked')).toEqual(null);\n expect(secondRadio.getAttribute('checked')).toEqual('');\n });\n\n it('should work with changing checked attribute programmatically', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" name=\"testname\" value=\"1\"', 2);\n const group = await page.find('q2-radio-group');\n const firstRadio = await page.find('q2-radio:nth-child(1)');\n const secondRadio = await page.find('q2-radio:nth-child(2)');\n await page.waitForChanges();\n\n expect(firstRadio.getAttribute('checked')).toEqual('');\n expect(secondRadio.getAttribute('checked')).toEqual(null);\n expect(await group.getProperty('value')).toEqual('1');\n\n // change to 2\n secondRadio.setAttribute('checked', '');\n await page.waitForChanges();\n\n expect(firstRadio.getAttribute('checked')).toEqual(null);\n expect(secondRadio.getAttribute('checked')).toEqual('');\n expect(await group.getProperty('value')).toEqual('2');\n\n // change back to 1\n firstRadio.setAttribute('checked', '');\n await page.waitForChanges();\n\n expect(firstRadio.getAttribute('checked')).toEqual('');\n expect(secondRadio.getAttribute('checked')).toEqual(null);\n expect(await group.getProperty('value')).toEqual('1');\n });\n\n describe('focus', () => {\n let page: E2EPage;\n let radioGroup: E2EElement;\n beforeEach(async () => {\n page = await setupPage('label=\"My Radio Group\"', 2);\n radioGroup = await page.find('q2-radio-group');\n\n expect(await activeValue(page)).toBeUndefined();\n });\n\n const activeValue = async (page: E2EPage) => {\n return page.evaluate(() => document.activeElement.closest('q2-radio')?.value);\n };\n\n it('focuses inner button when focus event is dispatched', async function (): Promise<void> {\n await radioGroup.triggerEvent('focus');\n await page.waitForChanges();\n\n expect(await activeValue(page)).toEqual('1');\n });\n\n it('focuses inner button when element.focus() is called', async function (): Promise<void> {\n await radioGroup.focus();\n await page.waitForChanges();\n\n expect(await activeValue(page)).toEqual('1');\n });\n });\n\n describe('Regressions', () => {\n describe('TCT-1689', () => {\n let page: E2EPage;\n beforeEach(async () => {\n page = await setup({\n html: `\n <script>\n function changeHandler() {\n window.changeEventCalled = true;\n }\n </script>\n <q2-radio-group value=\"2\" onChange=\"changeHandler()\">\n <q2-radio value=\"1\" label=\"1\"></q2-radio>\n <q2-radio value=\"2\" label=\"2\"></q2-radio>\n </q2-radio-group>\n `,\n });\n });\n\n it('does not emit a change event on initial render if value is set', async () => {\n expect(await page.$eval('body', () => (window as any).changeEventCalled)).toBeUndefined();\n });\n\n it('does emit a change event when an option is selected', async () => {\n const secondRadio = await page.find('q2-radio[value=\"1\"]');\n await secondRadio.setProperty('checked', true);\n await page.waitForChanges();\n\n expect(await page.$eval('body', () => (window as any).changeEventCalled)).toBe(true);\n });\n });\n });\n\n describe('Methods', () => {\n describe('setValue', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-radio-group label=\"My Radio Group\">\n <q2-radio value=\"value-1\" label=\"Radio 1\"></q2-radio>\n <q2-radio value=\"value-2\" label=\"Radio 2\"></q2-radio>\n <q2-radio value=\"value-3\" label=\"Radio 3\"></q2-radio>\n <q2-radio value=\"value-4\" label=\"Radio 3\"></q2-radio>\n <q2-radio value=\"value-5\" label=\"Radio 3\"></q2-radio>\n </q2-radio-group>\n `,\n });\n await page.waitForChanges();\n });\n\n it('selects the radio for the provided value', async () => {\n const radioGroup = await page.find('q2-radio-group');\n const radioGroupChangeSpy = await radioGroup.spyOnEvent('change');\n\n expect(radioGroupChangeSpy).toHaveReceivedEventTimes(0);\n expect(await getActiveElementTestId(page)).toBeNull();\n\n await radioGroup.callMethod('setValue', 'value-3');\n await page.waitForChanges();\n\n expect(radioGroupChangeSpy).toHaveReceivedEventTimes(1);\n expect(radioGroupChangeSpy).toHaveReceivedEventDetail({\n value: 'value-3',\n });\n\n const allRadios = await page.findAll('q2-radio');\n expect(allRadios[0]).not.toHaveAttribute('checked');\n expect(allRadios[1]).not.toHaveAttribute('checked');\n expect(allRadios[2]).toHaveAttribute('checked');\n expect(allRadios[3]).not.toHaveAttribute('checked');\n expect(allRadios[4]).not.toHaveAttribute('checked');\n\n expect(await getActiveElementTestId(page)).toEqual('q2RadioInnerRadioBox');\n });\n\n it('does not select any radio when the provided value is not found', async () => {\n const radioGroup = await page.find('q2-radio-group');\n const radioGroupChangeSpy = await radioGroup.spyOnEvent('change');\n\n expect(radioGroupChangeSpy).toHaveReceivedEventTimes(0);\n expect(await getActiveElementTestId(page)).toBeNull();\n\n await radioGroup.callMethod('setValue', 'value-10');\n await page.waitForChanges();\n\n expect(radioGroupChangeSpy).toHaveReceivedEventTimes(0);\n\n const allRadios = await page.findAll('q2-radio');\n expect(allRadios[0]).not.toHaveAttribute('checked');\n expect(allRadios[1]).not.toHaveAttribute('checked');\n expect(allRadios[2]).not.toHaveAttribute('checked');\n expect(allRadios[3]).not.toHaveAttribute('checked');\n expect(allRadios[4]).not.toHaveAttribute('checked');\n\n expect(await getActiveElementTestId(page)).toBeNull();\n });\n });\n });\n});\n"]}
1
+ {"version":3,"file":"q2-radio-group-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-radio-group-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { setup, dispatchEvent, getActiveElementTestId, getListOfStyleCompilationIssues } from '../helpers';\n\ndescribe('q2-radio-group', () => {\n let page: E2EPage;\n let radioGroup: E2EElement;\n\n const setupPage = async (props: string = '', numberOfRadios: number = 3, checkedRadios: number[] = []) => {\n props = props ? ` ${props}` : '';\n const radios = Array.from(\n { length: numberOfRadios },\n (_, i) =>\n `<q2-radio value=\"${i + 1}\" label=\"${i + 1}label\"${\n checkedRadios.includes(i + 1) ? ' checked=\"true\"' : ''\n }></q2-radio>`\n ).join('');\n const page = await setup({\n html: `\n <q2-radio-group \"${props}>\n ${radios}\n </q2-radio-group>\n `,\n });\n await page.waitForChanges();\n\n return page;\n };\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-radio-group></q2-radio-group>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-radio-group')).toHaveLength(0);\n });\n\n it('renders with label', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\"', 0);\n const label = await page.find('q2-radio-group >>> legend');\n\n expect(label).not.toBeNull();\n expect(label.innerText).toEqual('My Radio Group');\n });\n\n it('assigns name to all radios and updates if name changes', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" name=\"testname\"', 2);\n let firstRadio = await page.find('q2-radio:nth-child(1)');\n let secondRadio = await page.find('q2-radio:nth-child(2)');\n\n expect(firstRadio.getAttribute('name')).toEqual('testname');\n expect(secondRadio.getAttribute('name')).toEqual('testname');\n\n const radioGroup = await page.find('q2-radio-group');\n radioGroup.setProperty('name', 'newname');\n\n await page.waitForChanges();\n\n firstRadio = await page.find('q2-radio:nth-child(1)');\n secondRadio = await page.find('q2-radio:nth-child(2)');\n\n expect(firstRadio.getAttribute('name')).toEqual('newname');\n expect(secondRadio.getAttribute('name')).toEqual('newname');\n });\n\n it('assigns checked value on init and whenever value changes', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" name=\"testname\" value=\"2\"', 2);\n let firstRadio = await page.find('q2-radio:nth-child(1)');\n let secondRadio = await page.find('q2-radio:nth-child(2)');\n\n expect(firstRadio.getAttribute('checked')).toEqual(null);\n expect(secondRadio.getAttribute('checked')).toEqual('');\n\n const radioGroup = await page.find('q2-radio-group');\n radioGroup.setProperty('value', '1');\n\n await page.waitForChanges();\n\n firstRadio = await page.find('q2-radio:nth-child(1)');\n secondRadio = await page.find('q2-radio:nth-child(2)');\n\n expect(firstRadio.getAttribute('checked')).toEqual('');\n expect(secondRadio.getAttribute('checked')).toEqual(null);\n });\n\n it('assigns checked value on init for individual radio(s) that have checked atttribute === true, and no value is set for radio-group', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" name=\"testname\"', 3, [2]);\n let firstRadio = await page.find('q2-radio:nth-child(1)');\n let secondRadio = await page.find('q2-radio:nth-child(2)');\n let thirdRadio = await page.find('q2-radio:nth-child(3)');\n\n expect(firstRadio.getAttribute('checked')).toEqual(null);\n expect(secondRadio.getAttribute('checked')).toEqual('');\n expect(thirdRadio.getAttribute('checked')).toEqual(null);\n\n const radioGroup = await page.find('q2-radio-group');\n radioGroup.setProperty('value', '3');\n\n await page.waitForChanges();\n\n firstRadio = await page.find('q2-radio:nth-child(1)');\n secondRadio = await page.find('q2-radio:nth-child(2)');\n thirdRadio = await page.find('q2-radio:nth-child(3)');\n\n expect(firstRadio.getAttribute('checked')).toEqual(null);\n expect(secondRadio.getAttribute('checked')).toEqual(null);\n expect(thirdRadio.getAttribute('checked')).toEqual('');\n });\n\n it('assigns checked value on init for when radio-group value is set, and ignores / removes checked value individual radio preset checked={true}', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" name=\"testname\" value=\"2\"', 3, [1, 3]);\n let firstRadio = await page.find('q2-radio:nth-child(1)');\n let secondRadio = await page.find('q2-radio:nth-child(2)');\n let thirdRadio = await page.find('q2-radio:nth-child(3)');\n\n expect(firstRadio.getAttribute('checked')).toEqual(null);\n expect(secondRadio.getAttribute('checked')).toEqual('');\n expect(thirdRadio.getAttribute('checked')).toEqual(null);\n\n const radioGroup = await page.find('q2-radio-group');\n radioGroup.setProperty('value', '3');\n\n await page.waitForChanges();\n\n firstRadio = await page.find('q2-radio:nth-child(1)');\n secondRadio = await page.find('q2-radio:nth-child(2)');\n thirdRadio = await page.find('q2-radio:nth-child(3)');\n\n expect(firstRadio.getAttribute('checked')).toEqual(null);\n expect(secondRadio.getAttribute('checked')).toEqual(null);\n expect(thirdRadio.getAttribute('checked')).toEqual('');\n });\n\n it('does not assign \"checked\" value on init for when radio-group value is not set, or any q2-radio preset checked={true}', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" name=\"testname\"');\n let firstRadio = await page.find('q2-radio:nth-child(1)');\n let secondRadio = await page.find('q2-radio:nth-child(2)');\n let thirdRadio = await page.find('q2-radio:nth-child(3)');\n\n expect(firstRadio.getAttribute('checked')).toEqual(null);\n expect(secondRadio.getAttribute('checked')).toEqual(null);\n expect(thirdRadio.getAttribute('checked')).toEqual(null);\n\n const radioGroup = await page.find('q2-radio-group');\n radioGroup.setProperty('value', '3');\n\n await page.waitForChanges();\n\n firstRadio = await page.find('q2-radio:nth-child(1)');\n secondRadio = await page.find('q2-radio:nth-child(2)');\n thirdRadio = await page.find('q2-radio:nth-child(3)');\n\n expect(firstRadio.getAttribute('checked')).toEqual(null);\n expect(secondRadio.getAttribute('checked')).toEqual(null);\n expect(thirdRadio.getAttribute('checked')).toEqual('');\n });\n\n it('will update name, checked and disabled on new radio if added dynamically (mutation observer)', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" disabled name=\"testname\" value=\"3\"');\n await page.$eval('q2-radio-group', radioGroup => {\n const newRadio = document.createElement('q2-radio');\n newRadio.label = '3label';\n newRadio.value = '3';\n radioGroup.appendChild(newRadio);\n });\n await page.waitForChanges();\n const thirdRadio = await page.find('q2-radio:nth-child(3');\n\n expect(thirdRadio.getAttribute('name')).toEqual('testname');\n expect(thirdRadio.getAttribute('checked')).toEqual('');\n expect(await thirdRadio.getProperty('groupDisabled')).toEqual(true);\n });\n\n it('assigns tabIndex value of 0 to first radio in group, and then -1 for all following radios on init, and assigns -1 to all that are not selected there after', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" name=\"testname\"');\n const firstRadio = await page.find('q2-radio:nth-child(1)');\n const secondRadio = await page.find('q2-radio:nth-child(2)');\n const thirdRadio = await page.find('q2-radio:nth-child(3)');\n\n expect(await firstRadio.getProperty('tabIndex')).toEqual(0);\n expect(await secondRadio.getProperty('tabIndex')).toEqual(-1);\n expect(await thirdRadio.getProperty('tabIndex')).toEqual(-1);\n\n const radioGroup = await page.find('q2-radio-group');\n radioGroup.setProperty('value', '2');\n await page.waitForChanges();\n\n expect(await firstRadio.getProperty('tabIndex')).toEqual(-1);\n expect(await secondRadio.getProperty('tabIndex')).toEqual(0);\n expect(await thirdRadio.getProperty('tabIndex')).toEqual(-1);\n\n radioGroup.setProperty('value', '3');\n await page.waitForChanges();\n\n expect(await firstRadio.getProperty('tabIndex')).toEqual(-1);\n expect(await secondRadio.getProperty('tabIndex')).toEqual(-1);\n expect(await thirdRadio.getProperty('tabIndex')).toEqual(0);\n });\n\n it('disables all radios via groupDisable when radio group is disabled', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" name=\"testname\" value=\"2\"', 2);\n let firstRadioInnerInput = await page.find('q2-radio:nth-child(1) >>> input ');\n let secondRadioInnerInput = await page.find('q2-radio:nth-child(2) >>> input');\n\n expect(firstRadioInnerInput.getAttribute('disabled')).toEqual(null);\n expect(secondRadioInnerInput.getAttribute('disabled')).toEqual(null);\n\n const radioGroup = await page.find('q2-radio-group');\n radioGroup.setProperty('disabled', true);\n await page.waitForChanges();\n firstRadioInnerInput = await page.find('q2-radio:nth-child(1) >>> input');\n secondRadioInnerInput = await page.find('q2-radio:nth-child(2) >>> input ');\n\n expect(firstRadioInnerInput.getAttribute('disabled')).toEqual('');\n expect(secondRadioInnerInput.getAttribute('disabled')).toEqual('');\n });\n\n describe('Props', () => {\n const getActiveElementValue = async (page: E2EPage) => {\n return page.$eval('body', () => document.activeElement.getAttribute('value'));\n };\n\n describe('tilelayout', () => {\n it('converts to tileLayout=true when provided', async () => {\n page = await setupPage('label=\"My Radio Group\" tilelayout');\n radioGroup = await page.find('q2-radio-group');\n\n expect(radioGroup).toHaveAttribute('tile-layout');\n expect(await radioGroup.getProperty('tilelayout')).toBeUndefined();\n });\n\n it('converts to tileLayout=false when provided as \"false\"', async () => {\n page = await setupPage('label=\"My Radio Group\" tilelayout=\"false\"');\n radioGroup = await page.find('q2-radio-group');\n\n expect(radioGroup).not.toHaveAttribute('tile-layout');\n expect(await radioGroup.getProperty('tilelayout')).toBeUndefined();\n });\n });\n\n describe('readonly', () => {\n describe('set to true', () => {\n it('on load child q2-radio components are groupReadonly', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" readonly');\n const radios = await page.findAll('q2-radio');\n\n expect(radios.every(async radio => (await radio.getProperty('groupReadonly')) === true)).toBe(true);\n });\n it('after load child q2-radio components are groupReadonly', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\"');\n const radioGroup = await page.find('q2-radio-group');\n const radios = await page.findAll('q2-radio');\n\n expect(radios.every(async radio => (await radio.getProperty('groupReadonly')) === false)).toBe(\n true\n );\n\n radioGroup.setAttribute('readonly', 'true');\n await page.waitForChanges();\n\n expect(radios.every(async radio => (await radio.getProperty('groupReadonly')) === true)).toBe(true);\n });\n it('allows movement between radio buttons without selecting them', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" value=\"2\" readonly');\n const radioGroup = await page.find('q2-radio-group');\n await radioGroup.focus();\n\n expect(await getActiveElementValue(page)).toEqual('2');\n\n await dispatchEvent(page, 'q2-radio[value=\"2\"]', 'keydown', {\n key: 'ArrowDown',\n bubbles: true,\n });\n await page.waitForChanges();\n\n expect(await getActiveElementValue(page)).toEqual('3');\n expect(await radioGroup.getProperty('value')).toEqual('2');\n\n await dispatchEvent(page, 'q2-radio[value=\"3\"]', 'keydown', {\n key: 'ArrowUp',\n bubbles: true,\n });\n await page.waitForChanges();\n\n expect(await getActiveElementValue(page)).toEqual('2');\n expect(await radioGroup.getProperty('value')).toEqual('2');\n\n await dispatchEvent(page, 'q2-radio[value=\"2\"]', 'keydown', {\n key: 'ArrowUp',\n bubbles: true,\n });\n await page.waitForChanges();\n\n expect(await getActiveElementValue(page)).toEqual('1');\n expect(await radioGroup.getProperty('value')).toEqual('2');\n });\n\n it('allows clicking radio buttons without selecting them', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" value=\"2\" readonly');\n const radioGroup = await page.find('q2-radio-group');\n const radios = await page.findAll('q2-radio');\n await radios[0].click();\n\n expect(await getActiveElementValue(page)).toEqual('1');\n expect(await radioGroup.getProperty('value')).toEqual('2');\n });\n });\n describe('set to false', () => {\n it('on load child q2-radio components are NOT groupReadonly', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\"');\n const radios = await page.findAll('q2-radio');\n\n expect(radios.every(async radio => (await radio.getProperty('groupReadonly')) === false)).toBe(\n true\n );\n });\n it('after load child q2-radio components are NOT groupReadonly', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" readonly');\n const radioGroup = await page.find('q2-radio-group');\n const radios = await page.findAll('q2-radio');\n\n expect(radios.every(async radio => (await radio.getProperty('groupReadonly')) === true)).toBe(true);\n\n radioGroup.setAttribute('groupReadonly', 'false');\n await page.waitForChanges();\n\n expect(radios.every(async radio => (await radio.getProperty('groupReadonly')) === false)).toBe(\n true\n );\n });\n });\n });\n });\n\n it('when a radio is selected radio group emits change event', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" name=\"testname\" value=\"2\"', 2);\n const radioGroup = await page.find('q2-radio-group');\n const changeSpy = await radioGroup.spyOnEvent('change');\n await dispatchEvent(page, ['q2-radio:nth-child(1)', 'label'], 'click');\n\n // change event is fired with appropriate value\n expect(changeSpy).toHaveReceivedEventDetail({ value: '1' });\n\n const value = await radioGroup.getProperty('value');\n\n // value automatically updated by default change handler\n expect(value).toEqual('1');\n });\n\n it('can override default on change', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" name=\"testname\" value=\"2\"', 2);\n const radioGroup = await page.find('q2-radio-group');\n const changeSpy = await radioGroup.spyOnEvent('change');\n await page.$eval('q2-radio-group', radioGroup => {\n (radioGroup as HTMLQ2RadioGroupElement).onchange = function (event) {\n event.stopPropagation();\n // do nothing\n };\n });\n await dispatchEvent(page, ['q2-radio:nth-child(1)', 'label'], 'click');\n\n // change event is fired with appropriate value\n expect(changeSpy).toHaveReceivedEventDetail({ value: '1' });\n\n const value = await radioGroup.getProperty('value');\n\n expect(value).toEqual('2');\n });\n\n it('allows spacebar to select first option when focused and no options are selected', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" name=\"testname\"', 2);\n const firstRadio = await page.find('q2-radio');\n const firstRadioInput = await page.find('q2-radio >>> input');\n\n expect(firstRadio.getAttribute('checked')).toEqual(null);\n\n await firstRadioInput.press(' ');\n await page.waitForChanges();\n\n expect(await firstRadio.getProperty('checked')).toEqual(true);\n });\n it('should render a localized optional string when the optional attribute is passed', async function (): Promise<void> {\n page = await setupPage('label=\"foo\" name=\"testname\" optional', 2);\n const label = await page.find('q2-radio-group >>> legend');\n\n // a localized optional is shown in the label\n expect(label.innerText.trim()).toEqual('footecton.element.input.optional');\n });\n it('should show a tile format when tile option is passed', async (): Promise<void> => {\n page = await setupPage('label=\"My Radio Group\" name=\"testname\"', 2);\n let svgCheckbox = await page.findAll('q2-radio >>> svg');\n let firstRadio = await page.find('q2-radio >>> div');\n\n expect(svgCheckbox.length).toEqual(2);\n expect(firstRadio.classList.contains('radio-container')).toBeTruthy();\n\n const radioGroup = await page.find('q2-radio-group');\n radioGroup.setAttribute('tilelayout', 'true');\n await page.waitForChanges();\n svgCheckbox = await page.findAll('q2-radio >>> svg');\n firstRadio = await page.find('q2-radio >>> div');\n\n expect(svgCheckbox.length).toEqual(0);\n expect(firstRadio.classList.contains('radio-tile')).toBeTruthy();\n });\n\n it('handles keyboard navigation', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" name=\"testname\" value=\"1\"', 2);\n let firstRadio = await page.find('q2-radio:nth-child(1)');\n let secondRadio = await page.find('q2-radio:nth-child(2)');\n await page.waitForChanges();\n\n expect(firstRadio.getAttribute('checked')).toEqual('');\n expect(secondRadio.getAttribute('checked')).toEqual(null);\n\n await dispatchEvent(page, ['q2-radio-group'], 'keydown', {\n key: 'ArrowDown',\n });\n firstRadio = await page.find('q2-radio:nth-child(1)');\n secondRadio = await page.find('q2-radio:nth-child(2)');\n\n expect(firstRadio.getAttribute('checked')).toEqual(null);\n expect(secondRadio.getAttribute('checked')).toEqual('');\n });\n\n it('should work with changing checked attribute programmatically', async function (): Promise<void> {\n page = await setupPage('label=\"My Radio Group\" name=\"testname\" value=\"1\"', 2);\n const group = await page.find('q2-radio-group');\n const firstRadio = await page.find('q2-radio:nth-child(1)');\n const secondRadio = await page.find('q2-radio:nth-child(2)');\n await page.waitForChanges();\n\n expect(firstRadio.getAttribute('checked')).toEqual('');\n expect(secondRadio.getAttribute('checked')).toEqual(null);\n expect(await group.getProperty('value')).toEqual('1');\n\n // change to 2\n secondRadio.setAttribute('checked', '');\n await page.waitForChanges();\n\n expect(firstRadio.getAttribute('checked')).toEqual(null);\n expect(secondRadio.getAttribute('checked')).toEqual('');\n expect(await group.getProperty('value')).toEqual('2');\n\n // change back to 1\n firstRadio.setAttribute('checked', '');\n await page.waitForChanges();\n\n expect(firstRadio.getAttribute('checked')).toEqual('');\n expect(secondRadio.getAttribute('checked')).toEqual(null);\n expect(await group.getProperty('value')).toEqual('1');\n });\n\n describe('focus', () => {\n let page: E2EPage;\n let radioGroup: E2EElement;\n beforeEach(async () => {\n page = await setupPage('label=\"My Radio Group\"', 2);\n radioGroup = await page.find('q2-radio-group');\n\n expect(await activeValue(page)).toBeUndefined();\n });\n\n const activeValue = async (page: E2EPage) => {\n return page.evaluate(() => document.activeElement.closest('q2-radio')?.value);\n };\n\n it('focuses inner button when focus event is dispatched', async function (): Promise<void> {\n await radioGroup.triggerEvent('focus');\n await page.waitForChanges();\n\n expect(await activeValue(page)).toEqual('1');\n });\n\n it('focuses inner button when element.focus() is called', async function (): Promise<void> {\n await radioGroup.focus();\n await page.waitForChanges();\n\n expect(await activeValue(page)).toEqual('1');\n });\n });\n\n describe('Regressions', () => {\n describe('TCT-1689', () => {\n let page: E2EPage;\n beforeEach(async () => {\n page = await setup({\n html: `\n <script>\n function changeHandler() {\n window.changeEventCalled = true;\n }\n </script>\n <q2-radio-group value=\"2\" onChange=\"changeHandler()\">\n <q2-radio value=\"1\" label=\"1\"></q2-radio>\n <q2-radio value=\"2\" label=\"2\"></q2-radio>\n </q2-radio-group>\n `,\n });\n });\n\n it('does not emit a change event on initial render if value is set', async () => {\n expect(await page.$eval('body', () => (window as any).changeEventCalled)).toBeUndefined();\n });\n\n it('does emit a change event when an option is selected', async () => {\n const secondRadio = await page.find('q2-radio[value=\"1\"]');\n await secondRadio.setProperty('checked', true);\n await page.waitForChanges();\n\n expect(await page.$eval('body', () => (window as any).changeEventCalled)).toBe(true);\n });\n });\n });\n\n describe('Methods', () => {\n describe('setValue', () => {\n beforeEach(async () => {\n page = await setup({\n html: `\n <q2-radio-group label=\"My Radio Group\">\n <q2-radio value=\"value-1\" label=\"Radio 1\"></q2-radio>\n <q2-radio value=\"value-2\" label=\"Radio 2\"></q2-radio>\n <q2-radio value=\"value-3\" label=\"Radio 3\"></q2-radio>\n <q2-radio value=\"value-4\" label=\"Radio 3\"></q2-radio>\n <q2-radio value=\"value-5\" label=\"Radio 3\"></q2-radio>\n </q2-radio-group>\n `,\n });\n await page.waitForChanges();\n });\n\n it('selects the radio for the provided value', async () => {\n const radioGroup = await page.find('q2-radio-group');\n const radioGroupChangeSpy = await radioGroup.spyOnEvent('change');\n\n expect(radioGroupChangeSpy).toHaveReceivedEventTimes(0);\n expect(await getActiveElementTestId(page)).toBeNull();\n\n await radioGroup.callMethod('setValue', 'value-3');\n await page.waitForChanges();\n\n expect(radioGroupChangeSpy).toHaveReceivedEventTimes(1);\n expect(radioGroupChangeSpy).toHaveReceivedEventDetail({\n value: 'value-3',\n });\n\n const allRadios = await page.findAll('q2-radio');\n expect(allRadios[0]).not.toHaveAttribute('checked');\n expect(allRadios[1]).not.toHaveAttribute('checked');\n expect(allRadios[2]).toHaveAttribute('checked');\n expect(allRadios[3]).not.toHaveAttribute('checked');\n expect(allRadios[4]).not.toHaveAttribute('checked');\n\n expect(await getActiveElementTestId(page)).toEqual('q2RadioInnerRadioBox');\n });\n\n it('does not select any radio when the provided value is not found', async () => {\n const radioGroup = await page.find('q2-radio-group');\n const radioGroupChangeSpy = await radioGroup.spyOnEvent('change');\n\n expect(radioGroupChangeSpy).toHaveReceivedEventTimes(0);\n expect(await getActiveElementTestId(page)).toBeNull();\n\n await radioGroup.callMethod('setValue', 'value-10');\n await page.waitForChanges();\n\n expect(radioGroupChangeSpy).toHaveReceivedEventTimes(0);\n\n const allRadios = await page.findAll('q2-radio');\n expect(allRadios[0]).not.toHaveAttribute('checked');\n expect(allRadios[1]).not.toHaveAttribute('checked');\n expect(allRadios[2]).not.toHaveAttribute('checked');\n expect(allRadios[3]).not.toHaveAttribute('checked');\n expect(allRadios[4]).not.toHaveAttribute('checked');\n\n expect(await getActiveElementTestId(page)).toBeNull();\n });\n });\n });\n});\n"]}
@@ -1,4 +1,4 @@
1
- import { getActiveElementTestId, setup, testDeprecatedAriaLabel } from "../helpers";
1
+ import { getActiveElementTestId, getListOfStyleCompilationIssues, setup, testDeprecatedAriaLabel } from "../helpers";
2
2
  describe('q2-radio', () => {
3
3
  let page;
4
4
  const setupPage = async (props = '', label = 'My Radio') => {
@@ -18,6 +18,10 @@ describe('q2-radio', () => {
18
18
  await page.$eval('q2-radio', (el) => el.click());
19
19
  await page.waitForChanges();
20
20
  };
21
+ it('properly compiles CSS vars and functions', async () => {
22
+ const page = await setup({ html: '<q2-radio></q2-radio>' });
23
+ expect(await getListOfStyleCompilationIssues(page, 'q2-radio')).toHaveLength(0);
24
+ });
21
25
  it('renders with properties passed to inner input', async function () {
22
26
  page = await setupPage('value="1" disabled checked name="testName"');
23
27
  const radio = await page.find('q2-radio');