q2-tecton-elements 1.45.0 → 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 (157) hide show
  1. package/dist/cjs/{index-c385e32f.js → index-0430339e.js} +1 -1
  2. package/dist/cjs/{index-c385e32f.js.map → index-0430339e.js.map} +1 -1
  3. package/dist/cjs/q2-calendar.cjs.entry.js +3 -2
  4. package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
  5. package/dist/cjs/q2-icon.cjs.entry.js +1 -1
  6. package/dist/cjs/q2-icon.cjs.entry.js.map +1 -1
  7. package/dist/cjs/q2-message.cjs.entry.js +1 -1
  8. package/dist/cjs/q2-message.cjs.entry.js.map +1 -1
  9. package/dist/cjs/q2-relative-time.cjs.entry.js +1 -1
  10. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +1 -1
  11. package/dist/cjs/q2-stepper-vertical.cjs.entry.js.map +1 -1
  12. package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-stepper.cjs.entry.js.map +1 -1
  14. package/dist/collection/components/q2-calendar/q2-calendar.js +2 -1
  15. package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
  16. package/dist/collection/components/q2-data-table/q2-data-table.js +6 -6
  17. package/dist/collection/components/q2-icon/assets/status.symbol.svg +1 -1
  18. package/dist/collection/components/q2-icon/q2-icon.css +4 -4
  19. package/dist/collection/components/q2-input/q2-input.js +1 -1
  20. package/dist/collection/components/q2-message/q2-message.css +3 -3
  21. package/dist/collection/components/q2-option-list/q2-option-list.js +2 -2
  22. package/dist/collection/components/q2-stepper/q2-stepper.css +4 -2
  23. package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +2 -2
  24. package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.css +5 -16
  25. package/dist/components/q2-calendar.js +2 -1
  26. package/dist/components/q2-calendar.js.map +1 -1
  27. package/dist/components/q2-icon2.js +1 -1
  28. package/dist/components/q2-icon2.js.map +1 -1
  29. package/dist/components/q2-message2.js +1 -1
  30. package/dist/components/q2-message2.js.map +1 -1
  31. package/dist/components/q2-stepper-vertical.js +1 -1
  32. package/dist/components/q2-stepper-vertical.js.map +1 -1
  33. package/dist/components/q2-stepper.js +1 -1
  34. package/dist/components/q2-stepper.js.map +1 -1
  35. package/dist/esm/{index-f0dfb099.js → index-e940b40e.js} +1 -1
  36. package/dist/esm/{index-f0dfb099.js.map → index-e940b40e.js.map} +1 -1
  37. package/dist/esm/q2-calendar.entry.js +3 -2
  38. package/dist/esm/q2-calendar.entry.js.map +1 -1
  39. package/dist/esm/q2-icon.entry.js +1 -1
  40. package/dist/esm/q2-icon.entry.js.map +1 -1
  41. package/dist/esm/q2-message.entry.js +1 -1
  42. package/dist/esm/q2-message.entry.js.map +1 -1
  43. package/dist/esm/q2-relative-time.entry.js +1 -1
  44. package/dist/esm/q2-stepper-vertical.entry.js +1 -1
  45. package/dist/esm/q2-stepper-vertical.entry.js.map +1 -1
  46. package/dist/esm/q2-stepper.entry.js +1 -1
  47. package/dist/esm/q2-stepper.entry.js.map +1 -1
  48. package/dist/q2-tecton-elements/assets/status.symbol.svg +1 -1
  49. package/dist/q2-tecton-elements/p-445990a8.entry.js +2 -0
  50. package/dist/q2-tecton-elements/p-445990a8.entry.js.map +1 -0
  51. package/dist/q2-tecton-elements/{p-3c42c90f.js → p-7ce6e587.js} +1 -1
  52. package/dist/q2-tecton-elements/p-a977e723.entry.js +2 -0
  53. package/dist/q2-tecton-elements/p-a977e723.entry.js.map +1 -0
  54. package/dist/q2-tecton-elements/{p-8dc489e1.entry.js → p-b376c111.entry.js} +2 -2
  55. package/dist/q2-tecton-elements/p-c016bd18.entry.js +2 -0
  56. package/dist/q2-tecton-elements/p-c016bd18.entry.js.map +1 -0
  57. package/dist/q2-tecton-elements/{p-0d548810.entry.js → p-c4c458b7.entry.js} +2 -2
  58. package/dist/q2-tecton-elements/p-c4c458b7.entry.js.map +1 -0
  59. package/dist/q2-tecton-elements/{p-b21ed2d9.entry.js → p-f1281e3f.entry.js} +2 -2
  60. package/dist/q2-tecton-elements/{p-b21ed2d9.entry.js.map → p-f1281e3f.entry.js.map} +1 -1
  61. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  62. package/dist/test/elements/q2-action-sheet-test.e2e.js +5 -1
  63. package/dist/test/elements/q2-action-sheet-test.e2e.js.map +1 -1
  64. package/dist/test/elements/q2-avatar-test.e2e.js +2 -3
  65. package/dist/test/elements/q2-avatar-test.e2e.js.map +1 -1
  66. package/dist/test/elements/q2-badge-test.e2e.js +5 -1
  67. package/dist/test/elements/q2-badge-test.e2e.js.map +1 -1
  68. package/dist/test/elements/q2-btn-test.e2e.js +5 -1
  69. package/dist/test/elements/q2-btn-test.e2e.js.map +1 -1
  70. package/dist/test/elements/q2-calendar-test.e2e.js +40 -1
  71. package/dist/test/elements/q2-calendar-test.e2e.js.map +1 -1
  72. package/dist/test/elements/q2-card-test.e2e.js +5 -1
  73. package/dist/test/elements/q2-card-test.e2e.js.map +1 -1
  74. package/dist/test/elements/q2-chart-area-test.e2e.js +5 -1
  75. package/dist/test/elements/q2-chart-area-test.e2e.js.map +1 -1
  76. package/dist/test/elements/q2-chart-bar-test.e2e.js +5 -1
  77. package/dist/test/elements/q2-chart-bar-test.e2e.js.map +1 -1
  78. package/dist/test/elements/q2-chart-donut-test.e2e.js +5 -1
  79. package/dist/test/elements/q2-chart-donut-test.e2e.js.map +1 -1
  80. package/dist/test/elements/q2-checkbox-group-test.e2e.js +5 -1
  81. package/dist/test/elements/q2-checkbox-group-test.e2e.js.map +1 -1
  82. package/dist/test/elements/q2-checkbox-test.e2e.js +5 -1
  83. package/dist/test/elements/q2-checkbox-test.e2e.js.map +1 -1
  84. package/dist/test/elements/q2-currency-test.e2e.js +5 -1
  85. package/dist/test/elements/q2-currency-test.e2e.js.map +1 -1
  86. package/dist/test/elements/q2-data-table-test.e2e.js +5 -1
  87. package/dist/test/elements/q2-data-table-test.e2e.js.map +1 -1
  88. package/dist/test/elements/q2-dropdown-item-test.e2e.js +5 -1
  89. package/dist/test/elements/q2-dropdown-item-test.e2e.js.map +1 -1
  90. package/dist/test/elements/q2-dropdown-test.e2e.js +5 -1
  91. package/dist/test/elements/q2-dropdown-test.e2e.js.map +1 -1
  92. package/dist/test/elements/q2-editable-field-test.e2e.js +5 -1
  93. package/dist/test/elements/q2-editable-field-test.e2e.js.map +1 -1
  94. package/dist/test/elements/q2-icon-test.e2e.js +7 -3
  95. package/dist/test/elements/q2-icon-test.e2e.js.map +1 -1
  96. package/dist/test/elements/q2-input-test.e2e.js +5 -1
  97. package/dist/test/elements/q2-input-test.e2e.js.map +1 -1
  98. package/dist/test/elements/q2-loading-test.e2e.js +5 -1
  99. package/dist/test/elements/q2-loading-test.e2e.js.map +1 -1
  100. package/dist/test/elements/q2-loc-test.e2e.js +5 -1
  101. package/dist/test/elements/q2-loc-test.e2e.js.map +1 -1
  102. package/dist/test/elements/q2-message-test.e2e.js +5 -1
  103. package/dist/test/elements/q2-message-test.e2e.js.map +1 -1
  104. package/dist/test/elements/q2-optgroup-test.e2e.js +5 -1
  105. package/dist/test/elements/q2-optgroup-test.e2e.js.map +1 -1
  106. package/dist/test/elements/q2-option-list-test.e2e.js +5 -1
  107. package/dist/test/elements/q2-option-list-test.e2e.js.map +1 -1
  108. package/dist/test/elements/q2-option-test.e2e.js +5 -1
  109. package/dist/test/elements/q2-option-test.e2e.js.map +1 -1
  110. package/dist/test/elements/q2-pagination-test.e2e.js +5 -1
  111. package/dist/test/elements/q2-pagination-test.e2e.js.map +1 -1
  112. package/dist/test/elements/q2-pill-test.e2e.js +2 -3
  113. package/dist/test/elements/q2-pill-test.e2e.js.map +1 -1
  114. package/dist/test/elements/q2-popover-test.e2e.js +6 -2
  115. package/dist/test/elements/q2-popover-test.e2e.js.map +1 -1
  116. package/dist/test/elements/q2-radio-group-test.e2e.js +5 -1
  117. package/dist/test/elements/q2-radio-group-test.e2e.js.map +1 -1
  118. package/dist/test/elements/q2-radio-test.e2e.js +5 -1
  119. package/dist/test/elements/q2-radio-test.e2e.js.map +1 -1
  120. package/dist/test/elements/q2-relative-time-test.e2e.js +8 -4
  121. package/dist/test/elements/q2-relative-time-test.e2e.js.map +1 -1
  122. package/dist/test/elements/q2-section-test.e2e.js +5 -1
  123. package/dist/test/elements/q2-section-test.e2e.js.map +1 -1
  124. package/dist/test/elements/q2-select-test.e2e.js +5 -1
  125. package/dist/test/elements/q2-select-test.e2e.js.map +1 -1
  126. package/dist/test/elements/q2-stepper-pane-test.e2e.js +5 -1
  127. package/dist/test/elements/q2-stepper-pane-test.e2e.js.map +1 -1
  128. package/dist/test/elements/q2-stepper-test.e2e.js +5 -1
  129. package/dist/test/elements/q2-stepper-test.e2e.js.map +1 -1
  130. package/dist/test/elements/q2-stepper-vertical-test.e2e.js +5 -1
  131. package/dist/test/elements/q2-stepper-vertical-test.e2e.js.map +1 -1
  132. package/dist/test/elements/q2-tab-container-test.e2e.js +5 -1
  133. package/dist/test/elements/q2-tab-container-test.e2e.js.map +1 -1
  134. package/dist/test/elements/q2-tab-pane-test.e2e.js +5 -1
  135. package/dist/test/elements/q2-tab-pane-test.e2e.js.map +1 -1
  136. package/dist/test/elements/q2-tag-test.e2e.js +2 -3
  137. package/dist/test/elements/q2-tag-test.e2e.js.map +1 -1
  138. package/dist/test/elements/q2-textarea-test.e2e.js +5 -1
  139. package/dist/test/elements/q2-textarea-test.e2e.js.map +1 -1
  140. package/dist/test/elements/q2-tooltip-test.e2e.js +5 -1
  141. package/dist/test/elements/q2-tooltip-test.e2e.js.map +1 -1
  142. package/dist/test/elements/tecton-tab-pane-test.e2e.js +5 -1
  143. package/dist/test/elements/tecton-tab-pane-test.e2e.js.map +1 -1
  144. package/dist/test/helpers.js +1 -1
  145. package/dist/test/helpers.js.map +1 -1
  146. package/dist/types/workspace/workspace/{_Gitlab_tecton-production_master → tecton-production_release_1.45.x}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +1 -1
  147. package/package.json +3 -3
  148. package/dist/q2-tecton-elements/p-0d548810.entry.js.map +0 -1
  149. package/dist/q2-tecton-elements/p-4f7e2c8a.entry.js +0 -2
  150. package/dist/q2-tecton-elements/p-4f7e2c8a.entry.js.map +0 -1
  151. package/dist/q2-tecton-elements/p-bf125cdf.entry.js +0 -2
  152. package/dist/q2-tecton-elements/p-bf125cdf.entry.js.map +0 -1
  153. package/dist/q2-tecton-elements/p-f418967b.entry.js +0 -2
  154. package/dist/q2-tecton-elements/p-f418967b.entry.js.map +0 -1
  155. /package/dist/q2-tecton-elements/{p-3c42c90f.js.map → p-7ce6e587.js.map} +0 -0
  156. /package/dist/q2-tecton-elements/{p-8dc489e1.entry.js.map → p-b376c111.entry.js.map} +0 -0
  157. /package/dist/types/workspace/workspace/{_Gitlab_tecton-production_master → tecton-production_release_1.45.x}/packages/q2-tecton-elements/.stencil/test/elements/q2-detail/slot-component.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"q2-radio-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-radio-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EPage } from '@stencil/core/testing';\nimport { getActiveElementTestId, setup, testDeprecatedAriaLabel } from '../helpers';\n\ndescribe('q2-radio', () => {\n let page: E2EPage;\n\n const setupPage = async (props: string = '', label: string = 'My Radio') => {\n props = props ? ` ${props}` : '';\n page = await setup({\n html: `\n <q2-radio label=\"${label}\"${props}></q2-radio>\n `,\n });\n await page.waitForChanges();\n\n return page;\n };\n\n const isChecked = async (page: E2EPage) => {\n return page.$eval('q2-radio', el => el.shadowRoot.querySelector('input')?.checked ?? false);\n };\n\n const clickRadio = async (page: E2EPage) => {\n await page.$eval('q2-radio', (el: HTMLQ2RadioElement) => el.click());\n await page.waitForChanges();\n };\n\n it('renders with properties passed to inner input', async function (): Promise<void> {\n page = await setupPage('value=\"1\" disabled checked name=\"testName\"');\n const radio = await page.find('q2-radio');\n let radioLabel = await page.find('q2-radio >>> .label-content');\n const radioInput = await page.find('q2-radio >>> input');\n\n expect(radioLabel).toEqualText('My Radio');\n expect(radioInput).toEqualAttribute('name', 'testName');\n expect(radioInput).toHaveAttribute('disabled');\n expect(await radio.getProperty('hideLabel')).toBeUndefined();\n expect(await radio.getProperty('checked')).toEqual(true);\n expect(await radioInput.getProperty('checked')).toEqual(true);\n\n radio.setProperty('ariaLabel', 'My Aria Label');\n await page.waitForChanges();\n radioLabel = await page.find('q2-radio >>> .label-content');\n\n expect(await radio.getProperty('ariaLabel')).toBeUndefined();\n expect(await radio.getProperty('hideLabel')).toEqual(true);\n expect(await radio.getProperty('label')).toEqual('My Aria Label');\n expect(radioInput).toEqualAttribute('aria-label', 'My Aria Label');\n expect(radioLabel).toBeNull();\n\n radio.setProperty('hideLabel', false);\n radio.setProperty('disabled', false);\n await page.waitForChanges();\n radioLabel = await page.find('q2-radio >>> .label-content');\n\n expect(radioLabel).toEqualText('My Aria Label');\n expect(radioInput).not.toHaveAttribute('aria-label');\n expect(radioInput).not.toHaveAttribute('disabled');\n\n radio.setProperty('groupDisabled', true);\n await page.waitForChanges();\n\n expect(radioInput).toHaveAttribute('disabled');\n });\n\n describe('Methods', () => {\n describe('click', () => {\n it('selects the radio when called', async () => {\n page = await setupPage();\n const radio = await page.find('q2-radio');\n\n expect(await isChecked(page)).toBe(false);\n expect(radio).not.toHaveAttribute('checked');\n\n await clickRadio(page);\n\n expect(await isChecked(page)).toBe(true);\n expect(radio).toHaveAttribute('checked');\n });\n\n it('does not select the radio when readonly', async () => {\n const page = await setup({\n html: `<q2-radio label=\"Label\" readonly></q2-radio>`,\n });\n const radio = await page.find('q2-radio');\n const innerRadio = await page.find('q2-radio >>> input');\n\n expect(await getActiveElementTestId(page)).toBeNull();\n\n expect(radio).not.toHaveAttribute('checked');\n expect(innerRadio).not.toHaveAttribute('checked');\n\n await page.$eval('q2-radio', el => el.click());\n await page.waitForChanges();\n\n expect(radio).not.toHaveAttribute('checked');\n expect(innerRadio).not.toHaveAttribute('checked');\n expect(await getActiveElementTestId(page)).toEqual('q2RadioInnerRadioBox');\n });\n\n it('does not select the radio when disabled', async () => {\n const page = await setup({\n html: `<q2-radio label=\"Label\" disabled></q2-radio>`,\n });\n const radio = await page.find('q2-radio');\n const innerRadio = await page.find('q2-radio >>> input');\n\n expect(await getActiveElementTestId(page)).toBeNull();\n\n expect(radio).not.toHaveAttribute('checked');\n expect(innerRadio).not.toHaveAttribute('checked');\n\n await page.$eval('q2-radio', el => el.click());\n await page.waitForChanges();\n\n expect(radio).not.toHaveAttribute('checked');\n expect(innerRadio).not.toHaveAttribute('checked');\n expect(await getActiveElementTestId(page)).toBeNull();\n });\n });\n });\n\n describe('Props', () => {\n describe('groupReadonly', () => {\n describe('set to true', () => {\n it('on load does not check the radio when clicked', async () => {\n page = await setupPage('group-readonly');\n const radio = await page.find('q2-radio');\n\n expect(await isChecked(page)).toBe(false);\n expect(radio).not.toHaveAttribute('checked');\n\n await clickRadio(page);\n\n expect(await isChecked(page)).toBe(false);\n expect(radio).not.toHaveAttribute('checked');\n });\n it('after load does not check the radio when clicked', async () => {\n page = await setupPage();\n const radio = await page.find('q2-radio');\n\n expect(await isChecked(page)).toBe(false);\n expect(radio).not.toHaveAttribute('checked');\n\n radio.setProperty('groupReadonly', true);\n await page.waitForChanges();\n await clickRadio(page);\n\n expect(await isChecked(page)).toBe(false);\n expect(radio).not.toHaveAttribute('checked');\n });\n });\n describe('set to false', () => {\n it('on load checks the radio when clicked', async () => {\n page = await setupPage();\n const radio = await page.find('q2-radio');\n\n expect(await isChecked(page)).toBe(false);\n expect(radio).not.toHaveAttribute('checked');\n\n await clickRadio(page);\n\n expect(await isChecked(page)).toBe(true);\n expect(radio).toHaveAttribute('checked');\n });\n it('after load checks the radio when clicked', async () => {\n page = await setupPage('group-readonly');\n const radio = await page.find('q2-radio');\n\n expect(await isChecked(page)).toBe(false);\n expect(radio).not.toHaveAttribute('checked');\n\n radio.setProperty('groupReadonly', false);\n await page.waitForChanges();\n await clickRadio(page);\n\n expect(await isChecked(page)).toBe(true);\n expect(radio).toHaveAttribute('checked');\n });\n });\n });\n });\n\n describe('Regressions', () => {\n it('keeps the svg at 18px wide even with long labels', async function (): Promise<void> {\n const lotsOfText =\n 'Interdum et malesuada fames ac ante ipsum primis in faucibus. Praesent sed ipsum iaculis, dignissim orci quis, mollis nibh. Pellentesque eget dolor tristique, placerat nibh sollicitudin, vehicula sapien. ';\n page = await setupPage('value=\"1\" disabled checked name=\"testName\"', lotsOfText);\n const svg = await page.find('q2-radio >>> svg');\n const svgStyles = await svg.getComputedStyle();\n\n expect(svgStyles.width).toEqual('18px');\n });\n });\n\n describe('Deprecations', () => {\n it('handles deprecated `ariaLabel` prop', async () => {\n const label = 'My Label';\n page = await setupPage(`aria-label=\"${label}\"`);\n await testDeprecatedAriaLabel(await page.find('q2-radio'), label);\n\n expect(await page.find('q2-radio >>> input')).toEqualAttribute('aria-label', label);\n });\n });\n});\n"]}
1
+ {"version":3,"file":"q2-radio-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-radio-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EPage } from '@stencil/core/testing';\nimport { getActiveElementTestId, getListOfStyleCompilationIssues, setup, testDeprecatedAriaLabel } from '../helpers';\n\ndescribe('q2-radio', () => {\n let page: E2EPage;\n\n const setupPage = async (props: string = '', label: string = 'My Radio') => {\n props = props ? ` ${props}` : '';\n page = await setup({\n html: `\n <q2-radio label=\"${label}\"${props}></q2-radio>\n `,\n });\n await page.waitForChanges();\n\n return page;\n };\n\n const isChecked = async (page: E2EPage) => {\n return page.$eval('q2-radio', el => el.shadowRoot.querySelector('input')?.checked ?? false);\n };\n\n const clickRadio = async (page: E2EPage) => {\n await page.$eval('q2-radio', (el: HTMLQ2RadioElement) => el.click());\n await page.waitForChanges();\n };\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-radio></q2-radio>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-radio')).toHaveLength(0);\n });\n\n it('renders with properties passed to inner input', async function (): Promise<void> {\n page = await setupPage('value=\"1\" disabled checked name=\"testName\"');\n const radio = await page.find('q2-radio');\n let radioLabel = await page.find('q2-radio >>> .label-content');\n const radioInput = await page.find('q2-radio >>> input');\n\n expect(radioLabel).toEqualText('My Radio');\n expect(radioInput).toEqualAttribute('name', 'testName');\n expect(radioInput).toHaveAttribute('disabled');\n expect(await radio.getProperty('hideLabel')).toBeUndefined();\n expect(await radio.getProperty('checked')).toEqual(true);\n expect(await radioInput.getProperty('checked')).toEqual(true);\n\n radio.setProperty('ariaLabel', 'My Aria Label');\n await page.waitForChanges();\n radioLabel = await page.find('q2-radio >>> .label-content');\n\n expect(await radio.getProperty('ariaLabel')).toBeUndefined();\n expect(await radio.getProperty('hideLabel')).toEqual(true);\n expect(await radio.getProperty('label')).toEqual('My Aria Label');\n expect(radioInput).toEqualAttribute('aria-label', 'My Aria Label');\n expect(radioLabel).toBeNull();\n\n radio.setProperty('hideLabel', false);\n radio.setProperty('disabled', false);\n await page.waitForChanges();\n radioLabel = await page.find('q2-radio >>> .label-content');\n\n expect(radioLabel).toEqualText('My Aria Label');\n expect(radioInput).not.toHaveAttribute('aria-label');\n expect(radioInput).not.toHaveAttribute('disabled');\n\n radio.setProperty('groupDisabled', true);\n await page.waitForChanges();\n\n expect(radioInput).toHaveAttribute('disabled');\n });\n\n describe('Methods', () => {\n describe('click', () => {\n it('selects the radio when called', async () => {\n page = await setupPage();\n const radio = await page.find('q2-radio');\n\n expect(await isChecked(page)).toBe(false);\n expect(radio).not.toHaveAttribute('checked');\n\n await clickRadio(page);\n\n expect(await isChecked(page)).toBe(true);\n expect(radio).toHaveAttribute('checked');\n });\n\n it('does not select the radio when readonly', async () => {\n const page = await setup({\n html: `<q2-radio label=\"Label\" readonly></q2-radio>`,\n });\n const radio = await page.find('q2-radio');\n const innerRadio = await page.find('q2-radio >>> input');\n\n expect(await getActiveElementTestId(page)).toBeNull();\n\n expect(radio).not.toHaveAttribute('checked');\n expect(innerRadio).not.toHaveAttribute('checked');\n\n await page.$eval('q2-radio', el => el.click());\n await page.waitForChanges();\n\n expect(radio).not.toHaveAttribute('checked');\n expect(innerRadio).not.toHaveAttribute('checked');\n expect(await getActiveElementTestId(page)).toEqual('q2RadioInnerRadioBox');\n });\n\n it('does not select the radio when disabled', async () => {\n const page = await setup({\n html: `<q2-radio label=\"Label\" disabled></q2-radio>`,\n });\n const radio = await page.find('q2-radio');\n const innerRadio = await page.find('q2-radio >>> input');\n\n expect(await getActiveElementTestId(page)).toBeNull();\n\n expect(radio).not.toHaveAttribute('checked');\n expect(innerRadio).not.toHaveAttribute('checked');\n\n await page.$eval('q2-radio', el => el.click());\n await page.waitForChanges();\n\n expect(radio).not.toHaveAttribute('checked');\n expect(innerRadio).not.toHaveAttribute('checked');\n expect(await getActiveElementTestId(page)).toBeNull();\n });\n });\n });\n\n describe('Props', () => {\n describe('groupReadonly', () => {\n describe('set to true', () => {\n it('on load does not check the radio when clicked', async () => {\n page = await setupPage('group-readonly');\n const radio = await page.find('q2-radio');\n\n expect(await isChecked(page)).toBe(false);\n expect(radio).not.toHaveAttribute('checked');\n\n await clickRadio(page);\n\n expect(await isChecked(page)).toBe(false);\n expect(radio).not.toHaveAttribute('checked');\n });\n it('after load does not check the radio when clicked', async () => {\n page = await setupPage();\n const radio = await page.find('q2-radio');\n\n expect(await isChecked(page)).toBe(false);\n expect(radio).not.toHaveAttribute('checked');\n\n radio.setProperty('groupReadonly', true);\n await page.waitForChanges();\n await clickRadio(page);\n\n expect(await isChecked(page)).toBe(false);\n expect(radio).not.toHaveAttribute('checked');\n });\n });\n describe('set to false', () => {\n it('on load checks the radio when clicked', async () => {\n page = await setupPage();\n const radio = await page.find('q2-radio');\n\n expect(await isChecked(page)).toBe(false);\n expect(radio).not.toHaveAttribute('checked');\n\n await clickRadio(page);\n\n expect(await isChecked(page)).toBe(true);\n expect(radio).toHaveAttribute('checked');\n });\n it('after load checks the radio when clicked', async () => {\n page = await setupPage('group-readonly');\n const radio = await page.find('q2-radio');\n\n expect(await isChecked(page)).toBe(false);\n expect(radio).not.toHaveAttribute('checked');\n\n radio.setProperty('groupReadonly', false);\n await page.waitForChanges();\n await clickRadio(page);\n\n expect(await isChecked(page)).toBe(true);\n expect(radio).toHaveAttribute('checked');\n });\n });\n });\n });\n\n describe('Regressions', () => {\n it('keeps the svg at 18px wide even with long labels', async function (): Promise<void> {\n const lotsOfText =\n 'Interdum et malesuada fames ac ante ipsum primis in faucibus. Praesent sed ipsum iaculis, dignissim orci quis, mollis nibh. Pellentesque eget dolor tristique, placerat nibh sollicitudin, vehicula sapien. ';\n page = await setupPage('value=\"1\" disabled checked name=\"testName\"', lotsOfText);\n const svg = await page.find('q2-radio >>> svg');\n const svgStyles = await svg.getComputedStyle();\n\n expect(svgStyles.width).toEqual('18px');\n });\n });\n\n describe('Deprecations', () => {\n it('handles deprecated `ariaLabel` prop', async () => {\n const label = 'My Label';\n page = await setupPage(`aria-label=\"${label}\"`);\n await testDeprecatedAriaLabel(await page.find('q2-radio'), label);\n\n expect(await page.find('q2-radio >>> input')).toEqualAttribute('aria-label', label);\n });\n });\n});\n"]}
@@ -1,5 +1,5 @@
1
1
  import { newSpecPage } from "@stencil/core/testing";
2
- import { evaluateA11y, setup } from "../../../test/helpers";
2
+ import { evaluateA11y, getListOfStyleCompilationIssues, setup } from "../../../test/helpers";
3
3
  import { Q2RelativeTime } from "../../src/components/q2-relative-time/q2-relative-time";
4
4
  function createNewSpecPage(props) {
5
5
  let htmlProps = '';
@@ -38,6 +38,10 @@ function createNewSpecPage(props) {
38
38
  describe('q2-relative-time', () => {
39
39
  let specPage;
40
40
  let props;
41
+ it('properly compiles CSS vars and functions', async () => {
42
+ const page = await setup({ html: '<q2-relative-time></q2-relative-time>' });
43
+ expect(await getListOfStyleCompilationIssues(page, 'q2-relative-time')).toHaveLength(0);
44
+ });
41
45
  describe('[A11y] guideline compliance', () => {
42
46
  it('Does not have accessibility violations', async () => {
43
47
  const page = await setup({ html: `<q2-relative-time date='2020-02-01' />` });
@@ -53,7 +57,7 @@ describe('q2-relative-time', () => {
53
57
  };
54
58
  specPage = await createNewSpecPage(props);
55
59
  expect(specPage.root).toEqualHtml(`
56
- <q2-relative-time
60
+ <q2-relative-time
57
61
  date="2020-02-01"
58
62
  base-date="2024-05-14"
59
63
  locale="en-US"
@@ -79,10 +83,10 @@ describe('q2-relative-time', () => {
79
83
  };
80
84
  specPage = await createNewSpecPage(props);
81
85
  expect(specPage.root).toEqualHtml(`
82
- <q2-relative-time
86
+ <q2-relative-time
83
87
  date="2020-02-01"
84
88
  base-date="2024-05-14"
85
- sync="false"
89
+ sync="false"
86
90
  locale="en-US"
87
91
  message-format="long"
88
92
  numeric="always"
@@ -1 +1 @@
1
- {"version":3,"file":"q2-relative-time-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-relative-time-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { SpecPage, newSpecPage } from '@stencil/core/testing';\nimport { evaluateA11y, setup } from 'test/helpers';\nimport { Q2RelativeTime } from '../../src/components/q2-relative-time/q2-relative-time';\n\nfunction createNewSpecPage(props: {\n date?: string;\n baseDate?: string;\n sync?: boolean;\n locale?: string;\n messageFormat?: string;\n numeric?: string;\n unit?: string;\n}) {\n let htmlProps: string = '';\n Object.entries(props).forEach(([key, value]) => {\n switch (key) {\n case 'date':\n htmlProps += ` date=${value}`;\n break;\n case 'baseDate':\n htmlProps += ` base-date=${value}`;\n break;\n case 'sync':\n htmlProps += ` sync=\"${value}\"`;\n break;\n case 'locale':\n htmlProps += ` locale=${value}`;\n break;\n case 'messageFormat':\n htmlProps += ` message-format=${value}`;\n break;\n case 'numeric':\n htmlProps += ` numeric=\"${value}\"`;\n break;\n case 'unit':\n htmlProps += ` unit=${value}`;\n break;\n default:\n break;\n }\n });\n\n return newSpecPage({\n components: [Q2RelativeTime],\n html: `<q2-relative-time ${htmlProps}></q2-relative-time>`,\n });\n}\n\ndescribe('q2-relative-time', () => {\n let specPage: SpecPage;\n let props: {\n date?: string;\n baseDate?: string;\n sync?: boolean;\n locale?: string;\n messageFormat?: string;\n numeric?: string;\n unit?: string;\n };\n describe('[A11y] guideline compliance', () => {\n it('Does not have accessibility violations', async () => {\n const page = await setup({ html: `<q2-relative-time date='2020-02-01' />` });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n\n describe('Configuration', () => {\n it('renders with minimal configuration', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root).toEqualHtml(`\n <q2-relative-time \n date=\"2020-02-01\"\n base-date=\"2024-05-14\"\n locale=\"en-US\"\n message-format=\"short\"\n numeric=\"auto\">\n <mock:shadow-root>\n <time datetime=\"4 yr.\">\n 4 yr.\n </time>\n </mock:shadow-root>\n </q2-relative-time>\n `);\n });\n\n it('renders with full configuration', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n sync: false,\n locale: 'en-US',\n messageFormat: 'long',\n numeric: 'always',\n unit: 'year',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root).toEqualHtml(`\n <q2-relative-time \n date=\"2020-02-01\"\n base-date=\"2024-05-14\"\n sync=\"false\" \n locale=\"en-US\"\n message-format=\"long\"\n numeric=\"always\"\n unit=\"year\">\n <mock:shadow-root>\n <time datetime=\"4 years\">\n 4 years\n </time>\n </mock:shadow-root>\n </q2-relative-time>\n `);\n });\n });\n\n describe('Props', () => {\n describe('baseDate', () => {\n describe('when date is NOT provided', () => {\n it('it renders with the default baseDate', async () => {\n props = { baseDate: '2020-02-01' };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toBe('Invalid Date Provided');\n });\n });\n describe('when valid baseDate AND date are provided', () => {\n it('renders with provided baseDate', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.baseDate).toBe('2024-05-14');\n expect(await specPage.root.displayedMessageValue()).toBe('4 yr.');\n });\n it('trims the suffixes from displayedMessage', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toBe('4 yr.');\n });\n it(\"does not use the provided baseDate if it's invalid\", async () => {\n props = {\n date: '2020-02-01T00:00:00Z',\n baseDate: '02-03-2020T00:00:00Z',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).not.toBe('2 days ago');\n });\n it('displays only numeric messages', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2020-02-02',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toBe('1 day');\n });\n });\n });\n\n describe('date', () => {\n it(\"does not use the provided date if it's invalid\", async () => {\n props = { date: '02-01-2020T00:00:00Z' };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.date).not.toBe('2020-02-01T00:00:00');\n expect(await specPage.root.displayedMessageValue()).toBe('Invalid Date Provided');\n });\n it('should render with valid date', async () => {\n props = { date: '2020-02-01T00:00:00Z' };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.date).toBe('2020-02-01T00:00:00Z');\n });\n });\n\n describe('locale', () => {\n it('should render with given locale', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n locale: 'fr',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.locale).toBe('fr');\n expect(await specPage.root.displayedMessageValue()).toBe('il y a 4 a');\n });\n });\n\n describe('messageFormat', () => {\n describe('long', () => {\n it('should display the message in long form', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n messageFormat: 'long',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.messageFormat).toBe('long');\n expect(await specPage.root.displayedMessageValue()).toBe('4 years');\n });\n });\n describe('short', () => {\n it('should display the message in short form', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n messageFormat: 'short',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.messageFormat).toBe('short');\n expect(await specPage.root.displayedMessageValue()).toBe('4 yr.');\n });\n });\n describe('narrow', () => {\n it('should display the message in narrow form', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n messageFormat: 'narrow',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.messageFormat).toBe('narrow');\n expect(await specPage.root.displayedMessageValue()).toBe('4y');\n });\n });\n });\n\n describe('numeric', () => {\n it('is auto by default', async () => {\n props = {\n date: '2020-02-01',\n numeric: 'auto',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.numeric).toBe('auto');\n });\n\n it('only displays numerical values when set to always', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2020-02-02',\n numeric: 'always',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.numeric).toBe('always');\n expect(await specPage.root.displayedMessageValue()).toBe('1 day');\n });\n });\n\n describe('sync', () => {\n it('is true by default', async () => {\n props = { date: '2020-02-01' };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.sync).toBe(true);\n });\n it('can be set to false', async () => {\n props = { sync: false };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.sync).toBe(false);\n });\n it('is automatically disabled if date prop is invalid', async () => {\n props = { date: '02-01-2020T00:00:00Z' };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toBe('Invalid Date Provided');\n expect(specPage.root.sync).toBe(false);\n });\n });\n\n describe('unit', () => {\n it('forces the message to only use the provided unit', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n unit: 'year',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.unit).toBe('year');\n expect(await specPage.root.displayedMessageValue()).toContain('yr');\n\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n unit: 'month',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.unit).toBe('month');\n expect(await specPage.root.displayedMessageValue()).toContain('mo');\n });\n });\n });\n\n describe('trimSuffix', () => {\n it('does NOT trim the suffix if baseDate is invalid or not provided', async () => {\n props = {\n date: '2020-02-02',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toContain('ago');\n });\n\n it('trims the in/ago suffix when valid baseDate is provided', async () => {\n props = {\n date: '2020-02-02',\n baseDate: '2020-02-05',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).not.toContain('ago');\n });\n });\n});\n"]}
1
+ {"version":3,"file":"q2-relative-time-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-relative-time-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { SpecPage, newSpecPage } from '@stencil/core/testing';\nimport { evaluateA11y, getListOfStyleCompilationIssues, setup } from 'test/helpers';\nimport { Q2RelativeTime } from '../../src/components/q2-relative-time/q2-relative-time';\n\nfunction createNewSpecPage(props: {\n date?: string;\n baseDate?: string;\n sync?: boolean;\n locale?: string;\n messageFormat?: string;\n numeric?: string;\n unit?: string;\n}) {\n let htmlProps: string = '';\n Object.entries(props).forEach(([key, value]) => {\n switch (key) {\n case 'date':\n htmlProps += ` date=${value}`;\n break;\n case 'baseDate':\n htmlProps += ` base-date=${value}`;\n break;\n case 'sync':\n htmlProps += ` sync=\"${value}\"`;\n break;\n case 'locale':\n htmlProps += ` locale=${value}`;\n break;\n case 'messageFormat':\n htmlProps += ` message-format=${value}`;\n break;\n case 'numeric':\n htmlProps += ` numeric=\"${value}\"`;\n break;\n case 'unit':\n htmlProps += ` unit=${value}`;\n break;\n default:\n break;\n }\n });\n\n return newSpecPage({\n components: [Q2RelativeTime],\n html: `<q2-relative-time ${htmlProps}></q2-relative-time>`,\n });\n}\n\ndescribe('q2-relative-time', () => {\n let specPage: SpecPage;\n let props: {\n date?: string;\n baseDate?: string;\n sync?: boolean;\n locale?: string;\n messageFormat?: string;\n numeric?: string;\n unit?: string;\n };\n\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-relative-time></q2-relative-time>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-relative-time')).toHaveLength(0);\n });\n describe('[A11y] guideline compliance', () => {\n it('Does not have accessibility violations', async () => {\n const page = await setup({ html: `<q2-relative-time date='2020-02-01' />` });\n const hasViolations = await evaluateA11y(page);\n expect(hasViolations).toBe(false);\n });\n });\n\n describe('Configuration', () => {\n it('renders with minimal configuration', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root).toEqualHtml(`\n <q2-relative-time\n date=\"2020-02-01\"\n base-date=\"2024-05-14\"\n locale=\"en-US\"\n message-format=\"short\"\n numeric=\"auto\">\n <mock:shadow-root>\n <time datetime=\"4 yr.\">\n 4 yr.\n </time>\n </mock:shadow-root>\n </q2-relative-time>\n `);\n });\n\n it('renders with full configuration', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n sync: false,\n locale: 'en-US',\n messageFormat: 'long',\n numeric: 'always',\n unit: 'year',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root).toEqualHtml(`\n <q2-relative-time\n date=\"2020-02-01\"\n base-date=\"2024-05-14\"\n sync=\"false\"\n locale=\"en-US\"\n message-format=\"long\"\n numeric=\"always\"\n unit=\"year\">\n <mock:shadow-root>\n <time datetime=\"4 years\">\n 4 years\n </time>\n </mock:shadow-root>\n </q2-relative-time>\n `);\n });\n });\n\n describe('Props', () => {\n describe('baseDate', () => {\n describe('when date is NOT provided', () => {\n it('it renders with the default baseDate', async () => {\n props = { baseDate: '2020-02-01' };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toBe('Invalid Date Provided');\n });\n });\n describe('when valid baseDate AND date are provided', () => {\n it('renders with provided baseDate', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.baseDate).toBe('2024-05-14');\n expect(await specPage.root.displayedMessageValue()).toBe('4 yr.');\n });\n it('trims the suffixes from displayedMessage', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toBe('4 yr.');\n });\n it(\"does not use the provided baseDate if it's invalid\", async () => {\n props = {\n date: '2020-02-01T00:00:00Z',\n baseDate: '02-03-2020T00:00:00Z',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).not.toBe('2 days ago');\n });\n it('displays only numeric messages', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2020-02-02',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toBe('1 day');\n });\n });\n });\n\n describe('date', () => {\n it(\"does not use the provided date if it's invalid\", async () => {\n props = { date: '02-01-2020T00:00:00Z' };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.date).not.toBe('2020-02-01T00:00:00');\n expect(await specPage.root.displayedMessageValue()).toBe('Invalid Date Provided');\n });\n it('should render with valid date', async () => {\n props = { date: '2020-02-01T00:00:00Z' };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.date).toBe('2020-02-01T00:00:00Z');\n });\n });\n\n describe('locale', () => {\n it('should render with given locale', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n locale: 'fr',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.locale).toBe('fr');\n expect(await specPage.root.displayedMessageValue()).toBe('il y a 4 a');\n });\n });\n\n describe('messageFormat', () => {\n describe('long', () => {\n it('should display the message in long form', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n messageFormat: 'long',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.messageFormat).toBe('long');\n expect(await specPage.root.displayedMessageValue()).toBe('4 years');\n });\n });\n describe('short', () => {\n it('should display the message in short form', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n messageFormat: 'short',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.messageFormat).toBe('short');\n expect(await specPage.root.displayedMessageValue()).toBe('4 yr.');\n });\n });\n describe('narrow', () => {\n it('should display the message in narrow form', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n messageFormat: 'narrow',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.messageFormat).toBe('narrow');\n expect(await specPage.root.displayedMessageValue()).toBe('4y');\n });\n });\n });\n\n describe('numeric', () => {\n it('is auto by default', async () => {\n props = {\n date: '2020-02-01',\n numeric: 'auto',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.numeric).toBe('auto');\n });\n\n it('only displays numerical values when set to always', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2020-02-02',\n numeric: 'always',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.numeric).toBe('always');\n expect(await specPage.root.displayedMessageValue()).toBe('1 day');\n });\n });\n\n describe('sync', () => {\n it('is true by default', async () => {\n props = { date: '2020-02-01' };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.sync).toBe(true);\n });\n it('can be set to false', async () => {\n props = { sync: false };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.sync).toBe(false);\n });\n it('is automatically disabled if date prop is invalid', async () => {\n props = { date: '02-01-2020T00:00:00Z' };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toBe('Invalid Date Provided');\n expect(specPage.root.sync).toBe(false);\n });\n });\n\n describe('unit', () => {\n it('forces the message to only use the provided unit', async () => {\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n unit: 'year',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.unit).toBe('year');\n expect(await specPage.root.displayedMessageValue()).toContain('yr');\n\n props = {\n date: '2020-02-01',\n baseDate: '2024-05-14',\n unit: 'month',\n };\n specPage = await createNewSpecPage(props);\n expect(specPage.root.unit).toBe('month');\n expect(await specPage.root.displayedMessageValue()).toContain('mo');\n });\n });\n });\n\n describe('trimSuffix', () => {\n it('does NOT trim the suffix if baseDate is invalid or not provided', async () => {\n props = {\n date: '2020-02-02',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).toContain('ago');\n });\n\n it('trims the in/ago suffix when valid baseDate is provided', async () => {\n props = {\n date: '2020-02-02',\n baseDate: '2020-02-05',\n };\n specPage = await createNewSpecPage(props);\n expect(await specPage.root.displayedMessageValue()).not.toContain('ago');\n });\n });\n});\n"]}
@@ -1,5 +1,9 @@
1
- import { setTestStrings, setup, dispatchEvent } from "../helpers";
1
+ import { setTestStrings, setup, dispatchEvent, getListOfStyleCompilationIssues } from "../helpers";
2
2
  describe('q2-section', () => {
3
+ it('properly compiles CSS vars and functions', async () => {
4
+ const page = await setup({ html: '<q2-section></q2-section>' });
5
+ expect(await getListOfStyleCompilationIssues(page, 'q2-section')).toHaveLength(0);
6
+ });
3
7
  it('renders the header and content area', async function () {
4
8
  const page = await setup({
5
9
  html: `<q2-section>Some content to provide height.</q2-section>`,
@@ -1 +1 @@
1
- {"version":3,"file":"q2-section-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-section-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { setTestStrings, setup, dispatchEvent } from '../helpers';\n\ndescribe('q2-section', () => {\n it('renders the header and content area', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-section>Some content to provide height.</q2-section>`,\n });\n\n const sectionHeaderContent = await page.find('q2-section >>> .header-content');\n const sectionContentWrapper = await page.find('q2-section >>> .content-wrapper');\n\n expect(sectionHeaderContent).not.toBeNull();\n expect(sectionContentWrapper).not.toBeNull();\n expect(sectionContentWrapper.getAttribute('aria-labelledby')).toEqual(sectionHeaderContent.id);\n expect(sectionContentWrapper.id).toEqual('content');\n expect(sectionContentWrapper.getAttribute('role')).toEqual('region');\n\n const wrapperHeight = await page.$eval('q2-section', element => {\n return (element.shadowRoot.querySelector('.content-wrapper') as HTMLElement).style.getPropertyValue(\n 'height'\n );\n });\n\n // height not set since not collapsible\n expect(wrapperHeight).toEqual('');\n\n const section = await page.find('q2-section');\n section.setProperty('collapsible', true);\n section.setProperty('expanded', true);\n await page.waitForChanges();\n\n const { contentWrapperHeight, yieldedContentHeight } = await page.$eval('q2-section', element => {\n return {\n contentWrapperHeight: (element.shadowRoot.querySelector('.content-wrapper') as HTMLElement).style\n .height,\n yieldedContentHeight: (element.shadowRoot.querySelector('.content') as HTMLElement).offsetHeight,\n };\n });\n\n expect(contentWrapperHeight).toEqual(`${yieldedContentHeight}px`);\n });\n\n it('applies print styles', async () => {\n const page = await setup({\n html: `<q2-section collapsible expanded label=\"Section Header\"></q2-section>`,\n });\n const section = await page.find('q2-section');\n const header = await page.find('q2-section >>> header');\n const content = await page.find('q2-section >>> .content');\n let sectionStyles = await section.getComputedStyle();\n let headerStyles = await header.getComputedStyle();\n let contentStyles = await content.getComputedStyle();\n\n expect(sectionStyles.margin).toEqual('15px');\n expect(headerStyles.padding).toEqual('0px 15px');\n expect(contentStyles.padding).toEqual('10px 15px');\n\n page.emulateMediaType('print');\n await page.waitForChanges();\n\n sectionStyles = await section.getComputedStyle();\n headerStyles = await header.getComputedStyle();\n contentStyles = await content.getComputedStyle();\n\n expect(sectionStyles.margin).toEqual('15px 0px');\n expect(headerStyles.padding).toEqual('0px');\n expect(contentStyles.padding).toEqual('0px');\n });\n\n describe('Header', () => {\n it('renders the standard label prop as the section header', async function (): Promise<void> {\n const page = await setup({ html: `<q2-section></q2-section>` });\n\n const sectionWrapper = await page.find('q2-section >>> header');\n const sectionHeaderContent = await page.find('q2-section >>> .header-content');\n let sectionTitle = await page.find('q2-section >>> .header-content h2');\n\n expect(sectionTitle).toBeNull();\n expect(sectionWrapper).not.toHaveClass('has-header');\n\n const section = await page.find('q2-section');\n await section.setProperty('label', 'Section Title');\n await page.waitForChanges();\n sectionTitle = await page.find('q2-section >>> .header-content h2');\n\n expect(sectionTitle).not.toBeNull();\n expect(sectionTitle.textContent).toEqual('Section Title');\n expect(sectionHeaderContent.id).toEqual('title');\n expect(sectionWrapper).toHaveClass('has-header');\n });\n\n it('renders custom header content in place of section title', async function (): Promise<void> {\n const page = await setup({\n html: `\n <q2-section>\n <h3 slot=\"q2-section-header\">Custom Header Content</h3>\n </q2-section>\n `,\n });\n\n const sectionTitle = await page.find('q2-section >>> .header-content h2');\n expect(sectionTitle).toBeNull();\n\n const headerSlotText = await page.$eval('q2-section', element => {\n return (\n element.shadowRoot.querySelector('slot[name=\"q2-section-header\"]') as HTMLSlotElement\n ).assignedElements()[0].textContent;\n });\n\n expect(headerSlotText).toEqual('Custom Header Content');\n\n const sectionWrapper = await page.find('q2-section >>> header');\n expect(sectionWrapper).toHaveClass('has-header');\n\n const sectionHeaderSlot = await page.find('q2-section >>> slot[name=\"q2-section-header\"]');\n const slotChangeSpy = await sectionHeaderSlot.spyOnEvent('slotchange');\n\n const section = await page.find('q2-section');\n section.setProperty('innerHTML', '');\n await page.waitForChanges();\n\n expect(slotChangeSpy).toHaveReceivedEvent();\n\n const hasCustomContent = await page.$eval('q2-section', element => {\n return (\n (\n element.shadowRoot.querySelector('slot[name=\"q2-section-header\"]') as HTMLSlotElement\n ).assignedElements().length > 0\n );\n });\n\n expect(hasCustomContent).toBe(false);\n expect(sectionWrapper).not.toHaveClass('has-header');\n });\n });\n\n describe('Collapsing and Expanding', () => {\n async function checkCollapsingAndExpanding(type: 'header' | 'toggle') {\n const page = await setup({\n html: `\n <q2-section collapsible label=\"Section Header\">\n <ul>\n <li>Item 1</li>\n <li>Item 2</li>\n <li>Item 3</li>\n </ul>\n </q2-section>\n `,\n });\n const section = await page.find('q2-section');\n const changeEventSpy = await section.spyOnEvent('change');\n const contentWrapper = await page.find('q2-section >>> .content-wrapper');\n let contentWrapperStyles = await contentWrapper.getComputedStyle();\n const elementToClick = await page.find(\n `q2-section >>> ${type === 'toggle' ? 'q2-btn' : '.header-content'}`\n );\n\n expect(contentWrapper).toHaveClass('is-closed');\n expect(contentWrapper).not.toHaveClass('is-transitioning');\n expect(contentWrapperStyles.display).toEqual('none');\n expect(contentWrapperStyles.overflow).toEqual('hidden');\n expect(contentWrapperStyles.height).toEqual('0px');\n\n // trigger default handler\n await elementToClick.click();\n await page.waitForChanges();\n\n expect(contentWrapper).not.toHaveClass('is-closed');\n expect(contentWrapper).toHaveClass('is-transitioning');\n contentWrapperStyles = await contentWrapper.getComputedStyle();\n expect(contentWrapperStyles.display).toEqual('block');\n expect(contentWrapperStyles.overflow).toEqual('hidden');\n expect(parseInt(contentWrapperStyles.height)).toBeGreaterThan(0);\n\n expect(changeEventSpy).toHaveReceivedEventDetail({ expanded: true });\n\n await dispatchEvent(page, ['q2-section', '.content-wrapper'], 'transitionend');\n\n expect(contentWrapper).not.toHaveClass('is-closed');\n expect(contentWrapper).not.toHaveClass('is-transitioning');\n contentWrapperStyles = await contentWrapper.getComputedStyle();\n expect(contentWrapperStyles.display).toEqual('block');\n expect(contentWrapperStyles.overflow).toEqual('visible');\n expect(parseInt(contentWrapperStyles.height)).toBeGreaterThan(0);\n\n await elementToClick.click();\n await page.waitForChanges();\n\n expect(contentWrapper).not.toHaveClass('is-closed');\n expect(contentWrapper).toHaveClass('is-transitioning');\n contentWrapperStyles = await contentWrapper.getComputedStyle();\n expect(contentWrapperStyles.display).toEqual('block');\n expect(contentWrapperStyles.overflow).toEqual('hidden');\n expect(parseInt(contentWrapperStyles.height)).toBeGreaterThan(0);\n\n await dispatchEvent(page, ['q2-section', '.content-wrapper'], 'transitionend');\n\n expect(contentWrapper).toHaveClass('is-closed');\n expect(contentWrapper).not.toHaveClass('is-transitioning');\n contentWrapperStyles = await contentWrapper.getComputedStyle();\n expect(contentWrapperStyles.display).toEqual('none');\n expect(contentWrapperStyles.overflow).toEqual('hidden');\n expect(contentWrapperStyles.height).toEqual('0px');\n\n expect(changeEventSpy).toHaveReceivedEventTimes(2);\n }\n\n it('expands when header is clicked', async () => {\n await checkCollapsingAndExpanding('header');\n });\n\n it('expands when toggle is clicked', async () => {\n await checkCollapsingAndExpanding('toggle');\n });\n });\n\n describe('Props', () => {\n describe('collapsible', () => {\n it('renders the proper markup when true', async () => {\n const page = await setup({\n html: `<q2-section collapsible label=\"Section Header\"></q2-section>`,\n });\n const section = await page.find('q2-section');\n const toggleBtn = await page.find('q2-section >>> q2-btn');\n const sectionContentWrapper = await page.find('q2-section >>> .content-wrapper');\n\n expect(toggleBtn).toBeTruthy();\n expect(await toggleBtn.getProperty('label')).toEqual('Section Header');\n expect(await toggleBtn.getProperty('ariaExpanded')).toEqual('false');\n expect(await toggleBtn.getProperty('ariaControls')).toEqual(sectionContentWrapper.id);\n\n await section.setProperty('expanded', true);\n await page.waitForChanges();\n\n expect(await toggleBtn.getProperty('label')).toEqual('Section Header');\n expect(await toggleBtn.getProperty('ariaExpanded')).toEqual('true');\n });\n\n it('renders the proper markup when false', async () => {\n const page = await setup({\n html: `<q2-section label=\"Section Header\"></q2-section>`,\n });\n const toggleBtn = await page.find('q2-section >>> q2-btn');\n\n expect(toggleBtn).toBeFalsy();\n });\n\n describe('when custom header is defined', () => {\n it('uses the label attribute for the label of the toggle button', async () => {\n const page = await setup({\n html: `\n <q2-section label=\"My Custom Label\" collapsible>\n <h3 slot=\"q2-section-header\">Custom Header Content</h3>\n </q2-section>\n `,\n });\n\n const sectionTitle = await page.find('q2-section >>> .header-content h2');\n expect(sectionTitle).toBeNull();\n\n const sectionToggle = await page.find('q2-section >>> q2-btn');\n expect(sectionToggle).toEqualAttributes({ label: 'My Custom Label', 'hide-label': '' });\n });\n\n it('defaults the label of the toggle when one is not provided', async () => {\n const page = await setup({\n html: `\n <q2-section collapsible>\n <h3 slot=\"q2-section-header\">Custom Header Content</h3>\n </q2-section>\n `,\n });\n\n const sectionToggle = await page.find('q2-section >>> q2-btn');\n expect(sectionToggle).toEqualAttributes({\n label: 'tecton.element.section.defaultToggleLabel',\n 'hide-label': '',\n });\n });\n });\n });\n\n describe('no-collapse-icon', () => {\n it('renders the proper markup when true', async () => {\n const page = await setup({\n html: `<q2-section collapsible no-collapse-icon label=\"Section Header\"></q2-section>`,\n });\n const toggleBtn = await page.find('q2-section >>> q2-btn');\n\n expect(toggleBtn).toBeFalsy();\n });\n\n it('renders the proper markup when false', async () => {\n const page = await setup({\n html: `<q2-section collapsible label=\"Section Header\"></q2-section>`,\n });\n const toggleBtn = await page.find('q2-section >>> q2-btn');\n\n expect(toggleBtn).toBeTruthy();\n });\n });\n\n describe('expanded', () => {\n it(\"starts expanded when 'expanded' prop is true\", async () => {\n const page = await setup({\n html: `<q2-section collapsible expanded label=\"Section Header\"></q2-section>`,\n });\n const contentWrapper = await page.find('q2-section >>> .content-wrapper');\n const contentWrapperStyles = await contentWrapper.getComputedStyle();\n const caretIcon = await page.find('q2-section >>> q2-icon');\n const caretIconStyles = await caretIcon.getComputedStyle();\n expect(contentWrapper).not.toHaveClass('is-closed');\n expect(contentWrapper).not.toHaveClass('is-transitioning');\n expect(contentWrapperStyles.display).toEqual('block');\n expect(contentWrapperStyles.overflow).toEqual('visible');\n expect(parseInt(contentWrapperStyles.height)).toBeGreaterThan(0);\n expect(caretIconStyles.transform).toEqual('none');\n });\n\n it(\"starts collapsed when 'expanded' prop is set to false\", async () => {\n const page = await setup({\n html: `<q2-section collapsible expanded=\"false\" label=\"Section Header\"></q2-section>`,\n });\n const contentWrapper = await page.find('q2-section >>> .content-wrapper');\n const contentWrapperStyles = await contentWrapper.getComputedStyle();\n const caretIcon = await page.find('q2-section >>> q2-icon');\n const caretIconStyles = await caretIcon.getComputedStyle();\n expect(contentWrapper).toHaveClass('is-closed');\n expect(contentWrapper).not.toHaveClass('is-transitioning');\n expect(contentWrapperStyles.display).toEqual('none');\n expect(contentWrapperStyles.overflow).toEqual('hidden');\n expect(contentWrapperStyles.height).toEqual('0px');\n expect(caretIconStyles.transform).not.toEqual('none');\n });\n\n it(\"starts collapsed when 'expanded' prop is not provided\", async () => {\n const page = await setup({\n html: `<q2-section collapsible label=\"Section Header\"></q2-section>`,\n });\n const contentWrapper = await page.find('q2-section >>> .content-wrapper');\n const contentWrapperStyles = await contentWrapper.getComputedStyle();\n const caretIcon = await page.find('q2-section >>> q2-icon');\n const caretIconStyles = await caretIcon.getComputedStyle();\n expect(contentWrapper).toHaveClass('is-closed');\n expect(contentWrapper).not.toHaveClass('is-transitioning');\n expect(contentWrapperStyles.display).toEqual('none');\n expect(contentWrapperStyles.overflow).toEqual('hidden');\n expect(contentWrapperStyles.height).toEqual('0px');\n expect(caretIconStyles.transform).not.toEqual('none');\n });\n });\n });\n\n it('sets interval to resize iframe on toggle start', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-section expanded>Some content for height.</q2-section>`,\n });\n const setInterval = jest.fn();\n const clearInterval = jest.fn();\n const resizeIframe = jest.fn();\n\n await page.exposeFunction('setInterval', setInterval);\n await page.exposeFunction('clearInterval', clearInterval);\n await page.exposeFunction('resizeIframe', resizeIframe);\n await page.evaluate(() => {\n this.setInterval = setInterval;\n this.clearInterval = clearInterval;\n this.TectonElements.resizeIframe = resizeIframe;\n });\n\n const section = await page.find('q2-section');\n section.setProperty('collapsible', true);\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-section', 'q2-btn'], 'click');\n\n expect(clearInterval).not.toBeCalled();\n expect(setInterval).toBeCalledTimes(1);\n expect(setInterval.mock.calls[0]).toContain(5);\n // expect(setInterval.mock.calls[0]).toEqual([resizeIframe, 5]);\n });\n\n it('executes handler on transition end', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-section expanded>Some content for height.</q2-section>`,\n });\n const setTimeout = jest.fn();\n const clearInterval = jest.fn();\n const resizeIframe = jest.fn();\n\n await page.exposeFunction('setTimeout', setTimeout);\n await page.exposeFunction('clearInterval', clearInterval);\n await page.exposeFunction('resizeIframe', resizeIframe);\n await page.evaluate(() => {\n this.setTimeout = setTimeout;\n this.clearInterval = clearInterval;\n this.TectonElements.resizeIframe = resizeIframe;\n });\n\n const section = await page.find('q2-section');\n section.setProperty('collapsible', true);\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-section', '.content-wrapper'], 'transitionend');\n\n expect(setTimeout).toBeCalledTimes(1);\n expect(setTimeout.mock.calls[0]).toContain(1000);\n\n // expect(clearInterval).toBeCalledTimes(1);\n // expect(clearInterval.mock.calls[0]).toEqual([resizeIframe]);\n });\n\n it('calls resizeIframe on slotchange', async function (): Promise<void> {\n const page = await setup({ html: `<q2-section></q2-section>` });\n\n const resizeIframe = jest.fn();\n\n await page.exposeFunction('resizeIframe', resizeIframe);\n await page.evaluate(() => {\n this.TectonElements.resizeIframe = resizeIframe;\n });\n\n expect(resizeIframe).toHaveBeenCalledTimes(0);\n await dispatchEvent(page, ['q2-section', '.content-wrapper slot'], 'slotchange');\n expect(resizeIframe).toHaveBeenCalledTimes(1);\n });\n\n it('localizes label string', async function (): Promise<void> {\n const page = await setup({ html: `<q2-section></q2-section>` });\n\n await setTestStrings(page, {\n 'q2-section.label': 'Title Text',\n });\n\n const section = await page.find('q2-section');\n section.setProperty('label', 'q2-section.label');\n await page.waitForChanges();\n\n const sectionTitle = await page.find('q2-section >>> .header-content .title');\n\n expect(sectionTitle.innerText).toEqual('Title Text');\n });\n\n it('hides chevron button', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-section collapsible></q2-section>`,\n });\n let buttons = await page.findAll('q2-section >>> q2-btn');\n\n expect(buttons.length).toEqual(1);\n\n const section = await page.find('q2-section');\n section.setAttribute('no-collapse-icon', true);\n await page.waitForChanges();\n\n buttons = await page.findAll('q2-section >>> q2-btn');\n\n expect(buttons.length).toEqual(0);\n });\n\n describe('focus transferring', () => {\n const html = `<q2-section><h1>Hello</h1></q2-section>`;\n\n it('focuses when focus event dispatched ', async function (): Promise<void> {\n const page = await setup({ html });\n await dispatchEvent(page, ['q2-section'], 'focus');\n const contained = await page.$eval('q2-section', el => {\n return el.shadowRoot.activeElement.classList.contains('content');\n });\n expect(contained).toBe(true);\n });\n it('focuses when focus event method called ', async function (): Promise<void> {\n const page = await setup({ html });\n const section = await page.find('q2-section');\n await section.triggerEvent('focus');\n await page.waitForChanges();\n const contained = await page.$eval('q2-section', el => {\n return el.shadowRoot.activeElement.classList.contains('content');\n });\n expect(contained).toBe(true);\n });\n });\n});\n"]}
1
+ {"version":3,"file":"q2-section-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-section-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { setTestStrings, setup, dispatchEvent, getListOfStyleCompilationIssues } from '../helpers';\n\ndescribe('q2-section', () => {\n it('properly compiles CSS vars and functions', async () => {\n const page = await setup({ html: '<q2-section></q2-section>' });\n expect(await getListOfStyleCompilationIssues(page, 'q2-section')).toHaveLength(0);\n });\n\n it('renders the header and content area', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-section>Some content to provide height.</q2-section>`,\n });\n\n const sectionHeaderContent = await page.find('q2-section >>> .header-content');\n const sectionContentWrapper = await page.find('q2-section >>> .content-wrapper');\n\n expect(sectionHeaderContent).not.toBeNull();\n expect(sectionContentWrapper).not.toBeNull();\n expect(sectionContentWrapper.getAttribute('aria-labelledby')).toEqual(sectionHeaderContent.id);\n expect(sectionContentWrapper.id).toEqual('content');\n expect(sectionContentWrapper.getAttribute('role')).toEqual('region');\n\n const wrapperHeight = await page.$eval('q2-section', element => {\n return (element.shadowRoot.querySelector('.content-wrapper') as HTMLElement).style.getPropertyValue(\n 'height'\n );\n });\n\n // height not set since not collapsible\n expect(wrapperHeight).toEqual('');\n\n const section = await page.find('q2-section');\n section.setProperty('collapsible', true);\n section.setProperty('expanded', true);\n await page.waitForChanges();\n\n const { contentWrapperHeight, yieldedContentHeight } = await page.$eval('q2-section', element => {\n return {\n contentWrapperHeight: (element.shadowRoot.querySelector('.content-wrapper') as HTMLElement).style\n .height,\n yieldedContentHeight: (element.shadowRoot.querySelector('.content') as HTMLElement).offsetHeight,\n };\n });\n\n expect(contentWrapperHeight).toEqual(`${yieldedContentHeight}px`);\n });\n\n it('applies print styles', async () => {\n const page = await setup({\n html: `<q2-section collapsible expanded label=\"Section Header\"></q2-section>`,\n });\n const section = await page.find('q2-section');\n const header = await page.find('q2-section >>> header');\n const content = await page.find('q2-section >>> .content');\n let sectionStyles = await section.getComputedStyle();\n let headerStyles = await header.getComputedStyle();\n let contentStyles = await content.getComputedStyle();\n\n expect(sectionStyles.margin).toEqual('15px');\n expect(headerStyles.padding).toEqual('0px 15px');\n expect(contentStyles.padding).toEqual('10px 15px');\n\n page.emulateMediaType('print');\n await page.waitForChanges();\n\n sectionStyles = await section.getComputedStyle();\n headerStyles = await header.getComputedStyle();\n contentStyles = await content.getComputedStyle();\n\n expect(sectionStyles.margin).toEqual('15px 0px');\n expect(headerStyles.padding).toEqual('0px');\n expect(contentStyles.padding).toEqual('0px');\n });\n\n describe('Header', () => {\n it('renders the standard label prop as the section header', async function (): Promise<void> {\n const page = await setup({ html: `<q2-section></q2-section>` });\n\n const sectionWrapper = await page.find('q2-section >>> header');\n const sectionHeaderContent = await page.find('q2-section >>> .header-content');\n let sectionTitle = await page.find('q2-section >>> .header-content h2');\n\n expect(sectionTitle).toBeNull();\n expect(sectionWrapper).not.toHaveClass('has-header');\n\n const section = await page.find('q2-section');\n await section.setProperty('label', 'Section Title');\n await page.waitForChanges();\n sectionTitle = await page.find('q2-section >>> .header-content h2');\n\n expect(sectionTitle).not.toBeNull();\n expect(sectionTitle.textContent).toEqual('Section Title');\n expect(sectionHeaderContent.id).toEqual('title');\n expect(sectionWrapper).toHaveClass('has-header');\n });\n\n it('renders custom header content in place of section title', async function (): Promise<void> {\n const page = await setup({\n html: `\n <q2-section>\n <h3 slot=\"q2-section-header\">Custom Header Content</h3>\n </q2-section>\n `,\n });\n\n const sectionTitle = await page.find('q2-section >>> .header-content h2');\n expect(sectionTitle).toBeNull();\n\n const headerSlotText = await page.$eval('q2-section', element => {\n return (\n element.shadowRoot.querySelector('slot[name=\"q2-section-header\"]') as HTMLSlotElement\n ).assignedElements()[0].textContent;\n });\n\n expect(headerSlotText).toEqual('Custom Header Content');\n\n const sectionWrapper = await page.find('q2-section >>> header');\n expect(sectionWrapper).toHaveClass('has-header');\n\n const sectionHeaderSlot = await page.find('q2-section >>> slot[name=\"q2-section-header\"]');\n const slotChangeSpy = await sectionHeaderSlot.spyOnEvent('slotchange');\n\n const section = await page.find('q2-section');\n section.setProperty('innerHTML', '');\n await page.waitForChanges();\n\n expect(slotChangeSpy).toHaveReceivedEvent();\n\n const hasCustomContent = await page.$eval('q2-section', element => {\n return (\n (\n element.shadowRoot.querySelector('slot[name=\"q2-section-header\"]') as HTMLSlotElement\n ).assignedElements().length > 0\n );\n });\n\n expect(hasCustomContent).toBe(false);\n expect(sectionWrapper).not.toHaveClass('has-header');\n });\n });\n\n describe('Collapsing and Expanding', () => {\n async function checkCollapsingAndExpanding(type: 'header' | 'toggle') {\n const page = await setup({\n html: `\n <q2-section collapsible label=\"Section Header\">\n <ul>\n <li>Item 1</li>\n <li>Item 2</li>\n <li>Item 3</li>\n </ul>\n </q2-section>\n `,\n });\n const section = await page.find('q2-section');\n const changeEventSpy = await section.spyOnEvent('change');\n const contentWrapper = await page.find('q2-section >>> .content-wrapper');\n let contentWrapperStyles = await contentWrapper.getComputedStyle();\n const elementToClick = await page.find(\n `q2-section >>> ${type === 'toggle' ? 'q2-btn' : '.header-content'}`\n );\n\n expect(contentWrapper).toHaveClass('is-closed');\n expect(contentWrapper).not.toHaveClass('is-transitioning');\n expect(contentWrapperStyles.display).toEqual('none');\n expect(contentWrapperStyles.overflow).toEqual('hidden');\n expect(contentWrapperStyles.height).toEqual('0px');\n\n // trigger default handler\n await elementToClick.click();\n await page.waitForChanges();\n\n expect(contentWrapper).not.toHaveClass('is-closed');\n expect(contentWrapper).toHaveClass('is-transitioning');\n contentWrapperStyles = await contentWrapper.getComputedStyle();\n expect(contentWrapperStyles.display).toEqual('block');\n expect(contentWrapperStyles.overflow).toEqual('hidden');\n expect(parseInt(contentWrapperStyles.height)).toBeGreaterThan(0);\n\n expect(changeEventSpy).toHaveReceivedEventDetail({ expanded: true });\n\n await dispatchEvent(page, ['q2-section', '.content-wrapper'], 'transitionend');\n\n expect(contentWrapper).not.toHaveClass('is-closed');\n expect(contentWrapper).not.toHaveClass('is-transitioning');\n contentWrapperStyles = await contentWrapper.getComputedStyle();\n expect(contentWrapperStyles.display).toEqual('block');\n expect(contentWrapperStyles.overflow).toEqual('visible');\n expect(parseInt(contentWrapperStyles.height)).toBeGreaterThan(0);\n\n await elementToClick.click();\n await page.waitForChanges();\n\n expect(contentWrapper).not.toHaveClass('is-closed');\n expect(contentWrapper).toHaveClass('is-transitioning');\n contentWrapperStyles = await contentWrapper.getComputedStyle();\n expect(contentWrapperStyles.display).toEqual('block');\n expect(contentWrapperStyles.overflow).toEqual('hidden');\n expect(parseInt(contentWrapperStyles.height)).toBeGreaterThan(0);\n\n await dispatchEvent(page, ['q2-section', '.content-wrapper'], 'transitionend');\n\n expect(contentWrapper).toHaveClass('is-closed');\n expect(contentWrapper).not.toHaveClass('is-transitioning');\n contentWrapperStyles = await contentWrapper.getComputedStyle();\n expect(contentWrapperStyles.display).toEqual('none');\n expect(contentWrapperStyles.overflow).toEqual('hidden');\n expect(contentWrapperStyles.height).toEqual('0px');\n\n expect(changeEventSpy).toHaveReceivedEventTimes(2);\n }\n\n it('expands when header is clicked', async () => {\n await checkCollapsingAndExpanding('header');\n });\n\n it('expands when toggle is clicked', async () => {\n await checkCollapsingAndExpanding('toggle');\n });\n });\n\n describe('Props', () => {\n describe('collapsible', () => {\n it('renders the proper markup when true', async () => {\n const page = await setup({\n html: `<q2-section collapsible label=\"Section Header\"></q2-section>`,\n });\n const section = await page.find('q2-section');\n const toggleBtn = await page.find('q2-section >>> q2-btn');\n const sectionContentWrapper = await page.find('q2-section >>> .content-wrapper');\n\n expect(toggleBtn).toBeTruthy();\n expect(await toggleBtn.getProperty('label')).toEqual('Section Header');\n expect(await toggleBtn.getProperty('ariaExpanded')).toEqual('false');\n expect(await toggleBtn.getProperty('ariaControls')).toEqual(sectionContentWrapper.id);\n\n await section.setProperty('expanded', true);\n await page.waitForChanges();\n\n expect(await toggleBtn.getProperty('label')).toEqual('Section Header');\n expect(await toggleBtn.getProperty('ariaExpanded')).toEqual('true');\n });\n\n it('renders the proper markup when false', async () => {\n const page = await setup({\n html: `<q2-section label=\"Section Header\"></q2-section>`,\n });\n const toggleBtn = await page.find('q2-section >>> q2-btn');\n\n expect(toggleBtn).toBeFalsy();\n });\n\n describe('when custom header is defined', () => {\n it('uses the label attribute for the label of the toggle button', async () => {\n const page = await setup({\n html: `\n <q2-section label=\"My Custom Label\" collapsible>\n <h3 slot=\"q2-section-header\">Custom Header Content</h3>\n </q2-section>\n `,\n });\n\n const sectionTitle = await page.find('q2-section >>> .header-content h2');\n expect(sectionTitle).toBeNull();\n\n const sectionToggle = await page.find('q2-section >>> q2-btn');\n expect(sectionToggle).toEqualAttributes({ label: 'My Custom Label', 'hide-label': '' });\n });\n\n it('defaults the label of the toggle when one is not provided', async () => {\n const page = await setup({\n html: `\n <q2-section collapsible>\n <h3 slot=\"q2-section-header\">Custom Header Content</h3>\n </q2-section>\n `,\n });\n\n const sectionToggle = await page.find('q2-section >>> q2-btn');\n expect(sectionToggle).toEqualAttributes({\n label: 'tecton.element.section.defaultToggleLabel',\n 'hide-label': '',\n });\n });\n });\n });\n\n describe('no-collapse-icon', () => {\n it('renders the proper markup when true', async () => {\n const page = await setup({\n html: `<q2-section collapsible no-collapse-icon label=\"Section Header\"></q2-section>`,\n });\n const toggleBtn = await page.find('q2-section >>> q2-btn');\n\n expect(toggleBtn).toBeFalsy();\n });\n\n it('renders the proper markup when false', async () => {\n const page = await setup({\n html: `<q2-section collapsible label=\"Section Header\"></q2-section>`,\n });\n const toggleBtn = await page.find('q2-section >>> q2-btn');\n\n expect(toggleBtn).toBeTruthy();\n });\n });\n\n describe('expanded', () => {\n it(\"starts expanded when 'expanded' prop is true\", async () => {\n const page = await setup({\n html: `<q2-section collapsible expanded label=\"Section Header\"></q2-section>`,\n });\n const contentWrapper = await page.find('q2-section >>> .content-wrapper');\n const contentWrapperStyles = await contentWrapper.getComputedStyle();\n const caretIcon = await page.find('q2-section >>> q2-icon');\n const caretIconStyles = await caretIcon.getComputedStyle();\n expect(contentWrapper).not.toHaveClass('is-closed');\n expect(contentWrapper).not.toHaveClass('is-transitioning');\n expect(contentWrapperStyles.display).toEqual('block');\n expect(contentWrapperStyles.overflow).toEqual('visible');\n expect(parseInt(contentWrapperStyles.height)).toBeGreaterThan(0);\n expect(caretIconStyles.transform).toEqual('none');\n });\n\n it(\"starts collapsed when 'expanded' prop is set to false\", async () => {\n const page = await setup({\n html: `<q2-section collapsible expanded=\"false\" label=\"Section Header\"></q2-section>`,\n });\n const contentWrapper = await page.find('q2-section >>> .content-wrapper');\n const contentWrapperStyles = await contentWrapper.getComputedStyle();\n const caretIcon = await page.find('q2-section >>> q2-icon');\n const caretIconStyles = await caretIcon.getComputedStyle();\n expect(contentWrapper).toHaveClass('is-closed');\n expect(contentWrapper).not.toHaveClass('is-transitioning');\n expect(contentWrapperStyles.display).toEqual('none');\n expect(contentWrapperStyles.overflow).toEqual('hidden');\n expect(contentWrapperStyles.height).toEqual('0px');\n expect(caretIconStyles.transform).not.toEqual('none');\n });\n\n it(\"starts collapsed when 'expanded' prop is not provided\", async () => {\n const page = await setup({\n html: `<q2-section collapsible label=\"Section Header\"></q2-section>`,\n });\n const contentWrapper = await page.find('q2-section >>> .content-wrapper');\n const contentWrapperStyles = await contentWrapper.getComputedStyle();\n const caretIcon = await page.find('q2-section >>> q2-icon');\n const caretIconStyles = await caretIcon.getComputedStyle();\n expect(contentWrapper).toHaveClass('is-closed');\n expect(contentWrapper).not.toHaveClass('is-transitioning');\n expect(contentWrapperStyles.display).toEqual('none');\n expect(contentWrapperStyles.overflow).toEqual('hidden');\n expect(contentWrapperStyles.height).toEqual('0px');\n expect(caretIconStyles.transform).not.toEqual('none');\n });\n });\n });\n\n it('sets interval to resize iframe on toggle start', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-section expanded>Some content for height.</q2-section>`,\n });\n const setInterval = jest.fn();\n const clearInterval = jest.fn();\n const resizeIframe = jest.fn();\n\n await page.exposeFunction('setInterval', setInterval);\n await page.exposeFunction('clearInterval', clearInterval);\n await page.exposeFunction('resizeIframe', resizeIframe);\n await page.evaluate(() => {\n this.setInterval = setInterval;\n this.clearInterval = clearInterval;\n this.TectonElements.resizeIframe = resizeIframe;\n });\n\n const section = await page.find('q2-section');\n section.setProperty('collapsible', true);\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-section', 'q2-btn'], 'click');\n\n expect(clearInterval).not.toBeCalled();\n expect(setInterval).toBeCalledTimes(1);\n expect(setInterval.mock.calls[0]).toContain(5);\n // expect(setInterval.mock.calls[0]).toEqual([resizeIframe, 5]);\n });\n\n it('executes handler on transition end', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-section expanded>Some content for height.</q2-section>`,\n });\n const setTimeout = jest.fn();\n const clearInterval = jest.fn();\n const resizeIframe = jest.fn();\n\n await page.exposeFunction('setTimeout', setTimeout);\n await page.exposeFunction('clearInterval', clearInterval);\n await page.exposeFunction('resizeIframe', resizeIframe);\n await page.evaluate(() => {\n this.setTimeout = setTimeout;\n this.clearInterval = clearInterval;\n this.TectonElements.resizeIframe = resizeIframe;\n });\n\n const section = await page.find('q2-section');\n section.setProperty('collapsible', true);\n await page.waitForChanges();\n\n await dispatchEvent(page, ['q2-section', '.content-wrapper'], 'transitionend');\n\n expect(setTimeout).toBeCalledTimes(1);\n expect(setTimeout.mock.calls[0]).toContain(1000);\n\n // expect(clearInterval).toBeCalledTimes(1);\n // expect(clearInterval.mock.calls[0]).toEqual([resizeIframe]);\n });\n\n it('calls resizeIframe on slotchange', async function (): Promise<void> {\n const page = await setup({ html: `<q2-section></q2-section>` });\n\n const resizeIframe = jest.fn();\n\n await page.exposeFunction('resizeIframe', resizeIframe);\n await page.evaluate(() => {\n this.TectonElements.resizeIframe = resizeIframe;\n });\n\n expect(resizeIframe).toHaveBeenCalledTimes(0);\n await dispatchEvent(page, ['q2-section', '.content-wrapper slot'], 'slotchange');\n expect(resizeIframe).toHaveBeenCalledTimes(1);\n });\n\n it('localizes label string', async function (): Promise<void> {\n const page = await setup({ html: `<q2-section></q2-section>` });\n\n await setTestStrings(page, {\n 'q2-section.label': 'Title Text',\n });\n\n const section = await page.find('q2-section');\n section.setProperty('label', 'q2-section.label');\n await page.waitForChanges();\n\n const sectionTitle = await page.find('q2-section >>> .header-content .title');\n\n expect(sectionTitle.innerText).toEqual('Title Text');\n });\n\n it('hides chevron button', async function (): Promise<void> {\n const page = await setup({\n html: `<q2-section collapsible></q2-section>`,\n });\n let buttons = await page.findAll('q2-section >>> q2-btn');\n\n expect(buttons.length).toEqual(1);\n\n const section = await page.find('q2-section');\n section.setAttribute('no-collapse-icon', true);\n await page.waitForChanges();\n\n buttons = await page.findAll('q2-section >>> q2-btn');\n\n expect(buttons.length).toEqual(0);\n });\n\n describe('focus transferring', () => {\n const html = `<q2-section><h1>Hello</h1></q2-section>`;\n\n it('focuses when focus event dispatched ', async function (): Promise<void> {\n const page = await setup({ html });\n await dispatchEvent(page, ['q2-section'], 'focus');\n const contained = await page.$eval('q2-section', el => {\n return el.shadowRoot.activeElement.classList.contains('content');\n });\n expect(contained).toBe(true);\n });\n it('focuses when focus event method called ', async function (): Promise<void> {\n const page = await setup({ html });\n const section = await page.find('q2-section');\n await section.triggerEvent('focus');\n await page.waitForChanges();\n const contained = await page.$eval('q2-section', el => {\n return el.shadowRoot.activeElement.classList.contains('content');\n });\n expect(contained).toBe(true);\n });\n });\n});\n"]}
@@ -1,4 +1,4 @@
1
- import { setTestStrings, setup, dispatchEvent, getFocusedOptionValue, getActiveElementTestId, waitForTimeout, } from "../helpers";
1
+ import { setTestStrings, setup, dispatchEvent, getFocusedOptionValue, getActiveElementTestId, waitForTimeout, getListOfStyleCompilationIssues, } from "../helpers";
2
2
  describe('q2-select', () => {
3
3
  const isInvalidErrorString = 'tecton.element.select.invalid';
4
4
  let page;
@@ -21,6 +21,10 @@ describe('q2-select', () => {
21
21
  .querySelector('q2-popover')) === null || _a === void 0 ? void 0 : _a.style.getPropertyValue('--comp-popover-top-container-height');
22
22
  });
23
23
  };
24
+ it('properly compiles CSS vars and functions', async () => {
25
+ const page = await setup({ html: '<q2-select></q2-select>' });
26
+ expect(await getListOfStyleCompilationIssues(page, 'q2-select')).toHaveLength(0);
27
+ });
24
28
  it('renders base state', async () => {
25
29
  page = await setup({
26
30
  html: `