q2-tecton-elements 1.32.1 → 1.34.0
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.
- package/dist/cjs/click-elsewhere_2.cjs.entry.js +1 -1
- package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/q2-badge.cjs.entry.js +3 -0
- package/dist/cjs/q2-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-btn_2.cjs.entry.js +49 -38
- package/dist/cjs/q2-btn_2.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-calendar.cjs.entry.js +15 -3
- package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-chart-donut.cjs.entry.js +30 -4
- package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
- package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +8 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-input.cjs.entry.js +8 -6
- package/dist/cjs/q2-input.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-loading-element.cjs.entry.js +1 -1
- package/dist/cjs/q2-loading-element.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-option-list.cjs.entry.js +2 -1
- package/dist/cjs/q2-option-list.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-pill.cjs.entry.js +23 -19
- package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-radio-group.cjs.entry.js +11 -1
- package/dist/cjs/q2-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-radio.cjs.entry.js +1 -0
- package/dist/cjs/q2-radio.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tag.cjs.entry.js +16 -12
- package/dist/cjs/q2-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
- package/dist/collection/components/q2-badge/index.js +3 -0
- package/dist/collection/components/q2-badge/index.js.map +1 -1
- package/dist/collection/components/q2-btn/index.js +84 -39
- package/dist/collection/components/q2-btn/index.js.map +1 -1
- package/dist/collection/components/q2-btn/styles.css +822 -100
- package/dist/collection/components/q2-calendar/index.js +16 -4
- package/dist/collection/components/q2-calendar/index.js.map +1 -1
- package/dist/collection/components/q2-chart-donut/index.js +49 -5
- package/dist/collection/components/q2-chart-donut/index.js.map +1 -1
- package/dist/collection/components/q2-checkbox-group/index.js +1 -1
- package/dist/collection/components/q2-checkbox-group/index.js.map +1 -1
- package/dist/collection/components/q2-data-table/index.js +5 -5
- package/dist/collection/components/q2-dropdown/index.js +8 -1
- package/dist/collection/components/q2-dropdown/index.js.map +1 -1
- package/dist/collection/components/q2-input/index.js +8 -6
- package/dist/collection/components/q2-input/index.js.map +1 -1
- package/dist/collection/components/q2-input/styles.css +46 -30
- package/dist/collection/components/q2-loading/skeleton/q2-loading-element/styles.css +1 -1
- package/dist/collection/components/q2-loading/styles.css +1 -1
- package/dist/collection/components/q2-option-list/index.js +23 -4
- package/dist/collection/components/q2-option-list/index.js.map +1 -1
- package/dist/collection/components/q2-pill/index.js +40 -19
- package/dist/collection/components/q2-pill/index.js.map +1 -1
- package/dist/collection/components/q2-pill/styles.css +7 -7
- package/dist/collection/components/q2-popover/styles.css +2 -3
- package/dist/collection/components/q2-radio/index.js +19 -0
- package/dist/collection/components/q2-radio/index.js.map +1 -1
- package/dist/collection/components/q2-radio-group/index.js +11 -1
- package/dist/collection/components/q2-radio-group/index.js.map +1 -1
- package/dist/collection/components/q2-stepper-pane/index.js +2 -2
- package/dist/collection/components/q2-tag/index.js +35 -13
- package/dist/collection/components/q2-tag/index.js.map +1 -1
- package/dist/collection/components/q2-tag/styles.css +3 -3
- package/dist/components/index10.js +1 -1
- package/dist/components/index10.js.map +1 -1
- package/dist/components/index11.js +1 -1
- package/dist/components/index12.js +1 -1
- package/dist/components/index14.js +4 -2
- package/dist/components/index14.js.map +1 -1
- package/dist/components/index15.js +1 -1
- package/dist/components/index15.js.map +1 -1
- package/dist/components/index16.js +1 -1
- package/dist/components/index4.js +3 -0
- package/dist/components/index4.js.map +1 -1
- package/dist/components/index5.js +52 -39
- package/dist/components/index5.js.map +1 -1
- package/dist/components/index6.js +1 -1
- package/dist/components/index8.js +1 -1
- package/dist/components/index9.js +9 -7
- package/dist/components/index9.js.map +1 -1
- package/dist/components/q2-calendar.js +16 -4
- package/dist/components/q2-calendar.js.map +1 -1
- package/dist/components/q2-card.js +1 -1
- package/dist/components/q2-carousel.js +1 -1
- package/dist/components/q2-chart-donut.js +32 -6
- package/dist/components/q2-chart-donut.js.map +1 -1
- package/dist/components/q2-checkbox-group.js +2 -2
- package/dist/components/q2-checkbox-group.js.map +1 -1
- package/dist/components/q2-dropdown.js +9 -2
- package/dist/components/q2-dropdown.js.map +1 -1
- package/dist/components/q2-editable-field.js +1 -1
- package/dist/components/q2-loading-element.js +1 -1
- package/dist/components/q2-loading-element.js.map +1 -1
- package/dist/components/q2-pagination.js +1 -1
- package/dist/components/q2-pill.js +26 -21
- package/dist/components/q2-pill.js.map +1 -1
- package/dist/components/q2-radio-group.js +12 -2
- package/dist/components/q2-radio-group.js.map +1 -1
- package/dist/components/q2-radio.js +3 -1
- package/dist/components/q2-radio.js.map +1 -1
- package/dist/components/q2-section.js +1 -1
- package/dist/components/q2-select.js +1 -1
- package/dist/components/q2-stepper-pane.js +1 -1
- package/dist/components/q2-stepper-vertical.js +1 -1
- package/dist/components/q2-stepper.js +1 -1
- package/dist/components/q2-tab-container.js +1 -1
- package/dist/components/q2-tag.js +20 -15
- package/dist/components/q2-tag.js.map +1 -1
- package/dist/components/q2-textarea.js +1 -1
- package/dist/components/q2-tooltip.js +1 -1
- package/dist/docs.json +129 -2
- package/dist/esm/click-elsewhere_2.entry.js +2 -2
- package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
- package/dist/esm/{index-e647722e.js → index-a8589748.js} +2 -2
- package/dist/esm/{index-e647722e.js.map → index-a8589748.js.map} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/q2-action-sheet.entry.js +1 -1
- package/dist/esm/q2-badge.entry.js +3 -0
- package/dist/esm/q2-badge.entry.js.map +1 -1
- package/dist/esm/q2-btn_2.entry.js +51 -40
- package/dist/esm/q2-btn_2.entry.js.map +1 -1
- package/dist/esm/q2-calendar.entry.js +16 -4
- package/dist/esm/q2-calendar.entry.js.map +1 -1
- package/dist/esm/q2-card.entry.js +1 -1
- package/dist/esm/q2-carousel-pane.entry.js +1 -1
- package/dist/esm/q2-carousel.entry.js +1 -1
- package/dist/esm/q2-chart-area.entry.js +1 -1
- package/dist/esm/q2-chart-bar.entry.js +1 -1
- package/dist/esm/q2-chart-donut.entry.js +31 -5
- package/dist/esm/q2-chart-donut.entry.js.map +1 -1
- package/dist/esm/q2-checkbox-group.entry.js +2 -2
- package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
- package/dist/esm/q2-checkbox.entry.js +1 -1
- package/dist/esm/q2-data-table.entry.js +1 -1
- package/dist/esm/q2-dropdown-item.entry.js +1 -1
- package/dist/esm/q2-dropdown.entry.js +9 -2
- package/dist/esm/q2-dropdown.entry.js.map +1 -1
- package/dist/esm/q2-editable-field.entry.js +1 -1
- package/dist/esm/q2-icon.entry.js +1 -1
- package/dist/esm/q2-input.entry.js +9 -7
- package/dist/esm/q2-input.entry.js.map +1 -1
- package/dist/esm/q2-loading-element.entry.js +1 -1
- package/dist/esm/q2-loading-element.entry.js.map +1 -1
- package/dist/esm/q2-loc.entry.js +1 -1
- package/dist/esm/q2-message.entry.js +1 -1
- package/dist/esm/q2-month-picker.entry.js +1 -1
- package/dist/esm/q2-optgroup_2.entry.js +1 -1
- package/dist/esm/q2-option-list.entry.js +3 -2
- package/dist/esm/q2-option-list.entry.js.map +1 -1
- package/dist/esm/q2-pagination.entry.js +1 -1
- package/dist/esm/q2-pill.entry.js +24 -20
- package/dist/esm/q2-pill.entry.js.map +1 -1
- package/dist/esm/q2-radio-group.entry.js +12 -2
- package/dist/esm/q2-radio-group.entry.js.map +1 -1
- package/dist/esm/q2-radio.entry.js +2 -1
- package/dist/esm/q2-radio.entry.js.map +1 -1
- package/dist/esm/q2-section.entry.js +1 -1
- package/dist/esm/q2-select.entry.js +1 -1
- package/dist/esm/q2-stepper-pane.entry.js +1 -1
- package/dist/esm/q2-stepper-vertical.entry.js +1 -1
- package/dist/esm/q2-stepper.entry.js +1 -1
- package/dist/esm/q2-tab-container.entry.js +1 -1
- package/dist/esm/q2-tag.entry.js +18 -14
- package/dist/esm/q2-tag.entry.js.map +1 -1
- package/dist/esm/q2-tecton-elements.js +1 -1
- package/dist/esm/q2-textarea.entry.js +1 -1
- package/dist/esm/q2-tooltip.entry.js +1 -1
- package/dist/q2-tecton-elements/{p-75d7e017.entry.js → p-032591c6.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-5d351050.entry.js → p-04bf9c63.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-5d351050.entry.js.map → p-04bf9c63.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-e6268528.js → p-065b910b.js} +2 -2
- package/dist/q2-tecton-elements/{p-026d0aab.entry.js → p-07a0c5c5.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-07a0c5c5.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-1a0969ff.entry.js +2 -0
- package/dist/q2-tecton-elements/p-1a0969ff.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-c01f81d0.entry.js → p-22ab9b66.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-38b6fb76.entry.js +2 -0
- package/dist/q2-tecton-elements/p-38b6fb76.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-c2416941.entry.js → p-3a35c930.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-3a35c930.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-2ccfdb67.entry.js → p-3ee95a8d.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-c573b84f.entry.js → p-45399983.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-4eaed8ca.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-a3fee707.entry.js.map → p-4eaed8ca.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/p-5b43fa8f.entry.js +2 -0
- package/dist/q2-tecton-elements/p-5b43fa8f.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-d50df20d.entry.js → p-5e65c5ca.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-5e65c5ca.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-4182c4f8.entry.js → p-61ab4d37.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-3826c59b.entry.js → p-6d411b0b.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-6f421ccd.entry.js +2 -0
- package/dist/q2-tecton-elements/p-6f421ccd.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-75eafba4.entry.js → p-a00d7c46.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-87947ba8.entry.js → p-a2995834.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-aa3326d0.entry.js → p-a7b64d05.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-7481a3be.entry.js → p-a913651d.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-64a8f711.entry.js → p-ab63346c.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-b177f530.entry.js +2 -0
- package/dist/q2-tecton-elements/p-b177f530.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-7c165e8b.entry.js → p-b9478703.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-4c0f4f64.entry.js → p-b9a04695.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-70859483.entry.js → p-c14bac96.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-484520cf.entry.js → p-c299667d.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-d5105939.entry.js → p-d33822bb.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-2d72d2e9.entry.js → p-d57341f4.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-bcdc97c0.entry.js → p-d9e6bd63.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-aab700e4.entry.js → p-dbf471fd.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-a6687348.entry.js → p-dce9e778.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-2e648b5c.entry.js → p-ddd6f1d0.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-2e648b5c.entry.js.map → p-ddd6f1d0.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-c1e2f22c.entry.js → p-e053b479.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-b3b43a6d.entry.js → p-e0a066fb.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-e50113ee.entry.js +2 -0
- package/dist/q2-tecton-elements/p-e50113ee.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-ef3a5fab.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-d651e8ab.entry.js.map → p-ef3a5fab.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-b86c6859.entry.js → p-fa584c00.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-fdf8abed.entry.js +2 -0
- package/dist/q2-tecton-elements/p-fdf8abed.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-dedcab55.entry.js → p-ff6afb42.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-ff6afb42.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
- package/dist/test/elements/q2-badge-test.e2e.js +8 -0
- package/dist/test/elements/q2-badge-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-btn-test.e2e.js +57 -0
- package/dist/test/elements/q2-btn-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-calendar-test.e2e.js +73 -47
- package/dist/test/elements/q2-calendar-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-dropdown-test.e2e.js +8 -0
- package/dist/test/elements/q2-dropdown-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-input-test.e2e.js +82 -1
- package/dist/test/elements/q2-input-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-popover-test.e2e.js +19 -0
- package/dist/test/elements/q2-popover-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-radio-group-test.e2e.js +26 -0
- package/dist/test/elements/q2-radio-group-test.e2e.js.map +1 -1
- package/dist/test/helpers.js +11 -0
- package/dist/test/helpers.js.map +1 -1
- package/dist/types/components/q2-btn/index.d.ts +9 -3
- package/dist/types/components/q2-calendar/index.d.ts +1 -0
- package/dist/types/components/q2-chart-donut/index.d.ts +2 -1
- package/dist/types/components/q2-dropdown/index.d.ts +1 -0
- package/dist/types/components/q2-option-list/index.d.ts +1 -0
- package/dist/types/components/q2-pill/index.d.ts +4 -2
- package/dist/types/components/q2-radio/index.d.ts +1 -0
- package/dist/types/components/q2-tag/index.d.ts +4 -2
- package/dist/types/components.d.ts +26 -2
- package/dist/types/workspace/workspace/{tecton-production_release_1.32.x → _Gitlab_tecton-production_master}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +1 -0
- package/package.json +3 -3
- package/dist/q2-tecton-elements/p-026d0aab.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-387d30fe.entry.js +0 -2
- package/dist/q2-tecton-elements/p-387d30fe.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-4e3b38c8.entry.js +0 -2
- package/dist/q2-tecton-elements/p-4e3b38c8.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-6436b6c9.entry.js +0 -2
- package/dist/q2-tecton-elements/p-6436b6c9.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-7a1c26f9.entry.js +0 -2
- package/dist/q2-tecton-elements/p-7a1c26f9.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-a3fee707.entry.js +0 -2
- package/dist/q2-tecton-elements/p-be5c65cd.entry.js +0 -2
- package/dist/q2-tecton-elements/p-be5c65cd.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-c2416941.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-c39e892d.entry.js +0 -2
- package/dist/q2-tecton-elements/p-c39e892d.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-c74e8aaa.entry.js +0 -2
- package/dist/q2-tecton-elements/p-c74e8aaa.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-d50df20d.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-d651e8ab.entry.js +0 -2
- package/dist/q2-tecton-elements/p-dedcab55.entry.js.map +0 -1
- /package/dist/q2-tecton-elements/{p-75d7e017.entry.js.map → p-032591c6.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-e6268528.js.map → p-065b910b.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-c01f81d0.entry.js.map → p-22ab9b66.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-2ccfdb67.entry.js.map → p-3ee95a8d.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-c573b84f.entry.js.map → p-45399983.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-4182c4f8.entry.js.map → p-61ab4d37.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-3826c59b.entry.js.map → p-6d411b0b.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-75eafba4.entry.js.map → p-a00d7c46.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-87947ba8.entry.js.map → p-a2995834.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-aa3326d0.entry.js.map → p-a7b64d05.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-7481a3be.entry.js.map → p-a913651d.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-64a8f711.entry.js.map → p-ab63346c.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-7c165e8b.entry.js.map → p-b9478703.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-4c0f4f64.entry.js.map → p-b9a04695.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-70859483.entry.js.map → p-c14bac96.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-484520cf.entry.js.map → p-c299667d.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-d5105939.entry.js.map → p-d33822bb.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-2d72d2e9.entry.js.map → p-d57341f4.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-bcdc97c0.entry.js.map → p-d9e6bd63.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-aab700e4.entry.js.map → p-dbf471fd.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-a6687348.entry.js.map → p-dce9e778.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-c1e2f22c.entry.js.map → p-e053b479.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-b3b43a6d.entry.js.map → p-e0a066fb.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-b86c6859.entry.js.map → p-fa584c00.entry.js.map} +0 -0
|
@@ -225,6 +225,30 @@ describe('q2-btn', () => {
|
|
|
225
225
|
innerButton = await page.find('q2-btn >>> button');
|
|
226
226
|
expect(innerButton).toEqualAttribute('aria-haspopup', 'false');
|
|
227
227
|
});
|
|
228
|
+
it('sets aria-haspopup to true when provided "menu" or "true"', async () => {
|
|
229
|
+
page = await setup({
|
|
230
|
+
html: `<q2-btn aria-has-popup='menu'></q2-btn>`,
|
|
231
|
+
});
|
|
232
|
+
innerButton = await page.find('q2-btn >>> button');
|
|
233
|
+
expect(innerButton).toEqualAttribute('aria-haspopup', 'true');
|
|
234
|
+
page = await setup({
|
|
235
|
+
html: `<q2-btn aria-has-popup='true'></q2-btn>`,
|
|
236
|
+
});
|
|
237
|
+
innerButton = await page.find('q2-btn >>> button');
|
|
238
|
+
expect(innerButton).toEqualAttribute('aria-haspopup', 'true');
|
|
239
|
+
});
|
|
240
|
+
it('sets aria-haspopup to false when not provided "menu" or "true"', async () => {
|
|
241
|
+
page = await setup({
|
|
242
|
+
html: `<q2-btn aria-has-popup='listbox'></q2-btn>`,
|
|
243
|
+
});
|
|
244
|
+
innerButton = await page.find('q2-btn >>> button');
|
|
245
|
+
expect(innerButton).toEqualAttribute('aria-haspopup', 'false');
|
|
246
|
+
page = await setup({
|
|
247
|
+
html: `<q2-btn aria-has-popup='false'></q2-btn>`,
|
|
248
|
+
});
|
|
249
|
+
innerButton = await page.find('q2-btn >>> button');
|
|
250
|
+
expect(innerButton).toEqualAttribute('aria-haspopup', 'false');
|
|
251
|
+
});
|
|
228
252
|
});
|
|
229
253
|
describe('ariaSelected', () => {
|
|
230
254
|
it('uses "true" as value when provided', async () => {
|
|
@@ -287,6 +311,39 @@ describe('q2-btn', () => {
|
|
|
287
311
|
});
|
|
288
312
|
});
|
|
289
313
|
});
|
|
314
|
+
describe('description', () => {
|
|
315
|
+
beforeEach(async () => {
|
|
316
|
+
page = await setup({
|
|
317
|
+
html: `<q2-btn></q2-btn>`,
|
|
318
|
+
});
|
|
319
|
+
button = await page.find('q2-btn');
|
|
320
|
+
});
|
|
321
|
+
describe('when provided', () => {
|
|
322
|
+
it('aria-describedby is set to "hidden-description" on inner button', async () => {
|
|
323
|
+
button.setProperty('description', 'test description');
|
|
324
|
+
await page.waitForChanges();
|
|
325
|
+
innerButton = await page.find('q2-btn >>> button');
|
|
326
|
+
expect(innerButton).toEqualAttribute('aria-describedby', 'hidden-description');
|
|
327
|
+
});
|
|
328
|
+
it('generates an element with description as innerText and aria-hidden set to true', async () => {
|
|
329
|
+
button.setProperty('description', 'test description');
|
|
330
|
+
await page.waitForChanges();
|
|
331
|
+
const hiddenElement = await page.find('q2-btn >>> [id=hidden-description]');
|
|
332
|
+
expect(hiddenElement.innerText).toEqual('test description');
|
|
333
|
+
expect(hiddenElement).toEqualAttribute('aria-hidden', 'true');
|
|
334
|
+
});
|
|
335
|
+
});
|
|
336
|
+
describe('when not provided', () => {
|
|
337
|
+
it('aria-describedby attribute is not found on inner button', async () => {
|
|
338
|
+
innerButton = await page.find('q2-btn >>> button');
|
|
339
|
+
expect(innerButton).not.toHaveAttribute('aria-describedby');
|
|
340
|
+
});
|
|
341
|
+
it('does not generate an element with description', async () => {
|
|
342
|
+
const hiddenElement = await page.find('q2-btn >>> [id=hidden-description]');
|
|
343
|
+
expect(hiddenElement).toBe(null);
|
|
344
|
+
});
|
|
345
|
+
});
|
|
346
|
+
});
|
|
290
347
|
describe('Deprecations', () => {
|
|
291
348
|
describe('handles deprecated `color` prop', () => {
|
|
292
349
|
it('sets the color of the button', async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"q2-btn-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-btn-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { setTestStrings, setup, dispatchEvent, testDeprecatedAriaLabel } from '../helpers';\n\ndescribe('q2-btn', () => {\n let page: E2EPage;\n let button: E2EElement;\n let innerButton: E2EElement;\n it('clicks', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n\n button = await page.find('q2-btn');\n const spy = await button.spyOnEvent('click');\n\n await dispatchEvent(page, 'q2-btn', 'click');\n\n expect(spy).toHaveReceivedEvent();\n });\n\n it('stops immediate propagation if disabled', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn disabled>Hello</q2-btn>` });\n\n button = await page.find('q2-btn');\n const spy = await button.spyOnEvent('click');\n\n await dispatchEvent(page, 'q2-btn', 'click');\n\n expect(spy).not.toHaveReceivedEvent();\n });\n\n it('localizes aria-label', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n\n await setTestStrings(page, {\n 'button.ariaLabel': 'q2-btn aria-label',\n });\n\n button = await page.find('q2-btn');\n const innerBtn = await page.find('q2-btn >>> button');\n\n button.setProperty('ariaLabel', 'button.ariaLabel');\n\n await page.waitForChanges();\n\n expect(innerBtn).toEqualAttribute('aria-label', 'q2-btn aria-label');\n });\n\n it('supports label and slot', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn label=\"Hello World\"></q2-btn>` });\n const q2Btn = await page.find('q2-btn');\n const innerBtn = await page.find('q2-btn >>> button');\n let innerSlot = await page.find('q2-btn >>> slot');\n\n expect(innerBtn).toEqualText('Hello World');\n expect(innerSlot).toBeNull();\n\n q2Btn.setProperty('label', null);\n await page.waitForChanges();\n\n innerSlot = await page.find('q2-btn >>> slot');\n expect(innerBtn).toEqualText('');\n expect(innerSlot).toBeTruthy();\n });\n\n describe('focus', () => {\n let page: E2EPage;\n let btn: E2EElement;\n beforeEach(async () => {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n btn = await page.find('q2-btn');\n\n expect(await innerActiveTestId(page)).toBeUndefined();\n });\n\n const innerActiveTestId = async (page: E2EPage) => {\n return page.$eval('q2-btn', el => el.shadowRoot.activeElement?.getAttribute('test-id'));\n };\n\n it('focuses inner button when focus event is dispatched', async function (): Promise<void> {\n await btn.triggerEvent('focus');\n await page.waitForChanges();\n\n expect(await innerActiveTestId(page)).toEqual('q2BtnInnerButton');\n });\n\n it('focuses inner button when element.focus() is called', async function (): Promise<void> {\n await btn.focus();\n await page.waitForChanges();\n\n expect(await innerActiveTestId(page)).toEqual('q2BtnInnerButton');\n });\n });\n\n it('reflects some properties as attributes', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n button = await page.find('q2-btn');\n\n button.setProperty('type', 'submit');\n button.setProperty('disabled', true);\n button.setProperty('ariaLabel', 'Hello');\n\n await page.waitForChanges();\n\n expect(await page.find('q2-btn')).toEqualAttributes({\n type: 'submit',\n disabled: '',\n label: 'Hello',\n 'hide-label': '',\n });\n });\n\n describe('icons', () => {\n it('renders icon-only', async () => {\n page = await setup({ html: `<q2-btn><q2-icon type=\"edit\"></q2-icon></q2-btn>` });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-only');\n });\n\n it('renders icon-left', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-icon type=\"edit\"></q2-icon>\n <span>Edit</span>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-left');\n });\n\n it('renders icon-right', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <span>Edit</span>\n <q2-icon type=\"edit\"></q2-icon>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-right');\n });\n\n it('renders icon-left when q2-loc is in place of text', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-icon type=\"edit\"></q2-icon>\n <q2-loc value=\"test\"></q2-loc>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-left');\n });\n\n it('renders icon-right when q2-loc is in place of text', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-loc value=\"test\"></q2-loc>\n <q2-icon type=\"edit\"></q2-icon>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-right');\n });\n\n it('only allows the first icon', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-icon type=\"first\"></q2-icon>\n <span>Edit</span>\n <q2-icon type=\"second\"></q2-icon>\n <q2-icon type=\"third\"></q2-icon>\n <q2-icon type=\"fourth\"></q2-icon>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n const allIcons = await page.findAll('q2-icon');\n\n expect(innerButton).toHaveClass('icon-left');\n expect(allIcons).toHaveLength(1);\n expect(allIcons[0]).toEqualAttribute('type', 'first');\n });\n\n it('does not assess nested icons', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <div>\n <q2-icon type=\"first\"></q2-icon>\n </div>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).not.toHaveClass('icon-left');\n expect(innerButton).not.toHaveClass('icon-only');\n expect(innerButton).not.toHaveClass('icon-right');\n });\n });\n\n describe('Props', () => {\n describe('ariaExpanded', () => {\n it('uses \"true\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-expanded=\"true\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-expanded', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-expanded=\"false\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-expanded', 'false');\n });\n\n it('is not added when it is not provided', async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-expanded');\n });\n\n it('converts boolean attributes to strings', async () => {\n page = await setup({\n html: `<q2-btn aria-expanded></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-expanded', 'false');\n });\n });\n\n describe('ariaHasPopup', () => {\n it('uses \"true\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup=\"true\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup=\"false\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'false');\n });\n\n it('is not added when it is not provided', async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-haspopup');\n });\n\n it('converts boolean attributes to strings', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'false');\n });\n });\n\n describe('ariaSelected', () => {\n it('uses \"true\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-selected=\"true\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-selected', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-selected=\"false\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-selected', 'false');\n });\n\n it('is not added when it is not provided', async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-selected');\n });\n\n it('converts boolean attributes to strings', async () => {\n page = await setup({\n html: `<q2-btn aria-selected></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-selected', 'false');\n });\n });\n\n describe('ariaPressed', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n button = await page.find('q2-btn');\n });\n\n it('is not added when it is not provided', async () => {\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-pressed');\n });\n\n it('uses \"true\" as value when provided', async () => {\n await button.setProperty('ariaPressed', 'true');\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-pressed', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n await button.setProperty('ariaPressed', 'false');\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-pressed', 'false');\n });\n\n it('converts boolean attributes to strings', async () => {\n await button.setProperty('ariaPressed', true);\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-pressed', 'true');\n });\n });\n });\n\n describe('Deprecations', () => {\n describe('handles deprecated `color` prop', () => {\n it('sets the color of the button', async () => {\n page = await setup({\n html: `<q2-btn color=\"primary\">Test</q2-btn>`,\n });\n await page.waitForChanges();\n const button = await page.find('q2-btn');\n expect(button).toEqualAttribute('intent', 'workflow-primary');\n expect(await button.getProperty('color')).toBeUndefined();\n });\n });\n\n it('handles deprecated `ariaLabel` prop', async () => {\n const label = 'My Label';\n page = await setup({ html: `<q2-btn aria-label=\"${label}\"></q2-btn>` });\n await page.waitForChanges();\n await testDeprecatedAriaLabel(await page.find('q2-btn'), label);\n expect(await page.find('q2-btn >>> button')).toEqualAttribute('aria-label', label);\n });\n });\n\n describe('Deprecations', () => {\n describe('handles deprecated `color` prop', () => {\n it('sets the color of the button', async () => {\n const page = await setup({\n html: `<q2-btn color=\"primary\">Test</q2-btn>`,\n });\n await page.waitForChanges();\n const button = await page.find('q2-btn');\n expect(button).toEqualAttribute('intent', 'workflow-primary');\n expect(await button.getProperty('color')).toBeUndefined();\n });\n });\n\n it('handles deprecated `ariaLabel` prop', async () => {\n const label = 'My Label';\n const page = await setup({ html: `<q2-btn aria-label=\"${label}\"></q2-btn>` });\n await page.waitForChanges();\n await testDeprecatedAriaLabel(await page.find('q2-btn'), label);\n expect(await page.find('q2-btn >>> button')).toEqualAttribute('aria-label', label);\n });\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"q2-btn-test.e2e.js","sourceRoot":"","sources":["../../../test/elements/q2-btn-test.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { E2EElement, E2EPage } from '@stencil/core/testing';\nimport { setTestStrings, setup, dispatchEvent, testDeprecatedAriaLabel } from '../helpers';\n\ndescribe('q2-btn', () => {\n let page: E2EPage;\n let button: E2EElement;\n let innerButton: E2EElement;\n it('clicks', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n\n button = await page.find('q2-btn');\n const spy = await button.spyOnEvent('click');\n\n await dispatchEvent(page, 'q2-btn', 'click');\n\n expect(spy).toHaveReceivedEvent();\n });\n\n it('stops immediate propagation if disabled', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn disabled>Hello</q2-btn>` });\n\n button = await page.find('q2-btn');\n const spy = await button.spyOnEvent('click');\n\n await dispatchEvent(page, 'q2-btn', 'click');\n\n expect(spy).not.toHaveReceivedEvent();\n });\n\n it('localizes aria-label', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n\n await setTestStrings(page, {\n 'button.ariaLabel': 'q2-btn aria-label',\n });\n\n button = await page.find('q2-btn');\n const innerBtn = await page.find('q2-btn >>> button');\n\n button.setProperty('ariaLabel', 'button.ariaLabel');\n\n await page.waitForChanges();\n\n expect(innerBtn).toEqualAttribute('aria-label', 'q2-btn aria-label');\n });\n\n it('supports label and slot', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn label=\"Hello World\"></q2-btn>` });\n const q2Btn = await page.find('q2-btn');\n const innerBtn = await page.find('q2-btn >>> button');\n let innerSlot = await page.find('q2-btn >>> slot');\n\n expect(innerBtn).toEqualText('Hello World');\n expect(innerSlot).toBeNull();\n\n q2Btn.setProperty('label', null);\n await page.waitForChanges();\n\n innerSlot = await page.find('q2-btn >>> slot');\n expect(innerBtn).toEqualText('');\n expect(innerSlot).toBeTruthy();\n });\n\n describe('focus', () => {\n let page: E2EPage;\n let btn: E2EElement;\n beforeEach(async () => {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n btn = await page.find('q2-btn');\n\n expect(await innerActiveTestId(page)).toBeUndefined();\n });\n\n const innerActiveTestId = async (page: E2EPage) => {\n return page.$eval('q2-btn', el => el.shadowRoot.activeElement?.getAttribute('test-id'));\n };\n\n it('focuses inner button when focus event is dispatched', async function (): Promise<void> {\n await btn.triggerEvent('focus');\n await page.waitForChanges();\n\n expect(await innerActiveTestId(page)).toEqual('q2BtnInnerButton');\n });\n\n it('focuses inner button when element.focus() is called', async function (): Promise<void> {\n await btn.focus();\n await page.waitForChanges();\n\n expect(await innerActiveTestId(page)).toEqual('q2BtnInnerButton');\n });\n });\n\n it('reflects some properties as attributes', async function (): Promise<void> {\n page = await setup({ html: `<q2-btn>Hello</q2-btn>` });\n button = await page.find('q2-btn');\n\n button.setProperty('type', 'submit');\n button.setProperty('disabled', true);\n button.setProperty('ariaLabel', 'Hello');\n\n await page.waitForChanges();\n\n expect(await page.find('q2-btn')).toEqualAttributes({\n type: 'submit',\n disabled: '',\n label: 'Hello',\n 'hide-label': '',\n });\n });\n\n describe('icons', () => {\n it('renders icon-only', async () => {\n page = await setup({ html: `<q2-btn><q2-icon type=\"edit\"></q2-icon></q2-btn>` });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-only');\n });\n\n it('renders icon-left', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-icon type=\"edit\"></q2-icon>\n <span>Edit</span>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-left');\n });\n\n it('renders icon-right', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <span>Edit</span>\n <q2-icon type=\"edit\"></q2-icon>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-right');\n });\n\n it('renders icon-left when q2-loc is in place of text', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-icon type=\"edit\"></q2-icon>\n <q2-loc value=\"test\"></q2-loc>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-left');\n });\n\n it('renders icon-right when q2-loc is in place of text', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-loc value=\"test\"></q2-loc>\n <q2-icon type=\"edit\"></q2-icon>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).toHaveClass('icon-right');\n });\n\n it('only allows the first icon', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <q2-icon type=\"first\"></q2-icon>\n <span>Edit</span>\n <q2-icon type=\"second\"></q2-icon>\n <q2-icon type=\"third\"></q2-icon>\n <q2-icon type=\"fourth\"></q2-icon>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n const allIcons = await page.findAll('q2-icon');\n\n expect(innerButton).toHaveClass('icon-left');\n expect(allIcons).toHaveLength(1);\n expect(allIcons[0]).toEqualAttribute('type', 'first');\n });\n\n it('does not assess nested icons', async () => {\n page = await setup({\n html: `\n <q2-btn>\n <div>\n <q2-icon type=\"first\"></q2-icon>\n </div>\n </q2-btn>\n `,\n });\n innerButton = await page.find('q2-btn >>> button');\n\n expect(innerButton).not.toHaveClass('icon-left');\n expect(innerButton).not.toHaveClass('icon-only');\n expect(innerButton).not.toHaveClass('icon-right');\n });\n });\n\n describe('Props', () => {\n describe('ariaExpanded', () => {\n it('uses \"true\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-expanded=\"true\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-expanded', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-expanded=\"false\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-expanded', 'false');\n });\n\n it('is not added when it is not provided', async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-expanded');\n });\n\n it('converts boolean attributes to strings', async () => {\n page = await setup({\n html: `<q2-btn aria-expanded></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-expanded', 'false');\n });\n });\n\n describe('ariaHasPopup', () => {\n it('uses \"true\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup=\"true\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup=\"false\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'false');\n });\n\n it('is not added when it is not provided', async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-haspopup');\n });\n\n it('converts boolean attributes to strings', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'false');\n });\n\n it('sets aria-haspopup to true when provided \"menu\" or \"true\"', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup='menu'></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'true');\n\n page = await setup({\n html: `<q2-btn aria-has-popup='true'></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'true');\n });\n\n it('sets aria-haspopup to false when not provided \"menu\" or \"true\"', async () => {\n page = await setup({\n html: `<q2-btn aria-has-popup='listbox'></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'false');\n\n page = await setup({\n html: `<q2-btn aria-has-popup='false'></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-haspopup', 'false');\n });\n });\n\n describe('ariaSelected', () => {\n it('uses \"true\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-selected=\"true\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-selected', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n page = await setup({\n html: `<q2-btn aria-selected=\"false\"></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-selected', 'false');\n });\n\n it('is not added when it is not provided', async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-selected');\n });\n\n it('converts boolean attributes to strings', async () => {\n page = await setup({\n html: `<q2-btn aria-selected></q2-btn>`,\n });\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-selected', 'false');\n });\n });\n\n describe('ariaPressed', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n button = await page.find('q2-btn');\n });\n\n it('is not added when it is not provided', async () => {\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-pressed');\n });\n\n it('uses \"true\" as value when provided', async () => {\n await button.setProperty('ariaPressed', 'true');\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-pressed', 'true');\n });\n\n it('uses \"false\" as value when provided', async () => {\n await button.setProperty('ariaPressed', 'false');\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-pressed', 'false');\n });\n\n it('converts boolean attributes to strings', async () => {\n await button.setProperty('ariaPressed', true);\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-pressed', 'true');\n });\n });\n });\n\n describe('description', () => {\n beforeEach(async () => {\n page = await setup({\n html: `<q2-btn></q2-btn>`,\n });\n button = await page.find('q2-btn');\n });\n\n describe('when provided', () => {\n it('aria-describedby is set to \"hidden-description\" on inner button', async () => {\n button.setProperty('description', 'test description');\n await page.waitForChanges();\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).toEqualAttribute('aria-describedby', 'hidden-description');\n });\n\n it('generates an element with description as innerText and aria-hidden set to true', async () => {\n button.setProperty('description', 'test description');\n await page.waitForChanges();\n const hiddenElement = await page.find('q2-btn >>> [id=hidden-description]');\n expect(hiddenElement.innerText).toEqual('test description');\n expect(hiddenElement).toEqualAttribute('aria-hidden', 'true');\n });\n });\n\n describe('when not provided', () => {\n it('aria-describedby attribute is not found on inner button', async () => {\n innerButton = await page.find('q2-btn >>> button');\n expect(innerButton).not.toHaveAttribute('aria-describedby');\n });\n\n it('does not generate an element with description', async () => {\n const hiddenElement = await page.find('q2-btn >>> [id=hidden-description]');\n expect(hiddenElement).toBe(null);\n });\n });\n });\n\n describe('Deprecations', () => {\n describe('handles deprecated `color` prop', () => {\n it('sets the color of the button', async () => {\n page = await setup({\n html: `<q2-btn color=\"primary\">Test</q2-btn>`,\n });\n await page.waitForChanges();\n const button = await page.find('q2-btn');\n expect(button).toEqualAttribute('intent', 'workflow-primary');\n expect(await button.getProperty('color')).toBeUndefined();\n });\n });\n\n it('handles deprecated `ariaLabel` prop', async () => {\n const label = 'My Label';\n page = await setup({ html: `<q2-btn aria-label=\"${label}\"></q2-btn>` });\n await page.waitForChanges();\n await testDeprecatedAriaLabel(await page.find('q2-btn'), label);\n expect(await page.find('q2-btn >>> button')).toEqualAttribute('aria-label', label);\n });\n });\n\n describe('Deprecations', () => {\n describe('handles deprecated `color` prop', () => {\n it('sets the color of the button', async () => {\n const page = await setup({\n html: `<q2-btn color=\"primary\">Test</q2-btn>`,\n });\n await page.waitForChanges();\n const button = await page.find('q2-btn');\n expect(button).toEqualAttribute('intent', 'workflow-primary');\n expect(await button.getProperty('color')).toBeUndefined();\n });\n });\n\n it('handles deprecated `ariaLabel` prop', async () => {\n const label = 'My Label';\n const page = await setup({ html: `<q2-btn aria-label=\"${label}\"></q2-btn>` });\n await page.waitForChanges();\n await testDeprecatedAriaLabel(await page.find('q2-btn'), label);\n expect(await page.find('q2-btn >>> button')).toEqualAttribute('aria-label', label);\n });\n });\n});\n"]}
|
|
@@ -7,6 +7,7 @@ describe('q2-calendar', () => {
|
|
|
7
7
|
let calendar;
|
|
8
8
|
let date;
|
|
9
9
|
let popover;
|
|
10
|
+
let calendarButton;
|
|
10
11
|
const isInvalidErrorString = 'tecton.element.calendar.invalid';
|
|
11
12
|
beforeEach(function () {
|
|
12
13
|
date = '2017-02-01';
|
|
@@ -315,16 +316,18 @@ describe('q2-calendar', () => {
|
|
|
315
316
|
beforeEach(async () => {
|
|
316
317
|
page = await setup({
|
|
317
318
|
html: `
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
`,
|
|
319
|
+
<q2-calendar
|
|
320
|
+
label="Calendar Label"
|
|
321
|
+
placeholder="Calendar Placeholder"
|
|
322
|
+
typeable
|
|
323
|
+
></q2-calendar>
|
|
324
|
+
`,
|
|
325
325
|
});
|
|
326
326
|
calendarField = await page.find('q2-calendar');
|
|
327
327
|
innerInput = await page.find('q2-calendar >>> [test-id="inputAndCalendarToggle"]');
|
|
328
|
+
message = await page.find('q2-calendar >>> q2-message');
|
|
329
|
+
popover = await page.find('q2-calendar >>> q2-popover');
|
|
330
|
+
calendarButton = await page.find('q2-calendar >>> q2-btn');
|
|
328
331
|
});
|
|
329
332
|
it('renders message without sr class', async () => {
|
|
330
333
|
const message = await page.find('q2-calendar >>> q2-message');
|
|
@@ -347,6 +350,8 @@ describe('q2-calendar', () => {
|
|
|
347
350
|
expect(await calendarField.getProperty('value')).toBeUndefined();
|
|
348
351
|
});
|
|
349
352
|
it('marks field as invalid when an unavailable date is typed ( weekend with checksum 62 )', async () => {
|
|
353
|
+
await calendarField.setProperty('daysOfWeekChecksum', 62);
|
|
354
|
+
await page.waitForChanges();
|
|
350
355
|
await innerInput.click();
|
|
351
356
|
await innerInput.type('10022021');
|
|
352
357
|
const selectedDate = await page.find('q2-calendar >>> td.is-selected');
|
|
@@ -362,6 +367,67 @@ describe('q2-calendar', () => {
|
|
|
362
367
|
expect(calendarField).not.toHaveAttribute('invalid');
|
|
363
368
|
expect(await calendarField.getProperty('value')).toBeUndefined();
|
|
364
369
|
});
|
|
370
|
+
it('reset the calendar when assigning empty string', async () => {
|
|
371
|
+
await innerInput.click();
|
|
372
|
+
await innerInput.type('3333');
|
|
373
|
+
const messageHint = await page.find('q2-calendar >>> .calendar-hint');
|
|
374
|
+
expect(messageHint).toEqualAttribute('type', 'error');
|
|
375
|
+
expect(calendarField).toHaveAttribute('invalid');
|
|
376
|
+
expect(await calendarField.getProperty('value')).toBeUndefined();
|
|
377
|
+
await calendarField.setProperty('value', '');
|
|
378
|
+
await page.waitForChanges();
|
|
379
|
+
expect(messageHint).toEqualAttribute('type', 'info');
|
|
380
|
+
expect(calendarField).not.toHaveAttribute('invalid');
|
|
381
|
+
expect(await calendarField.getProperty('value')).toBeUndefined();
|
|
382
|
+
});
|
|
383
|
+
it('does not display error , if month value is possible', async () => {
|
|
384
|
+
await innerInput.type('10');
|
|
385
|
+
expect(message.textContent).toEqual('tecton.element.calendar.hint.format: mm/dd/yyyy');
|
|
386
|
+
expect(message).toEqualAttribute('type', 'info');
|
|
387
|
+
});
|
|
388
|
+
it('does not display error, if month and day values are possible', async () => {
|
|
389
|
+
await innerInput.type('0122');
|
|
390
|
+
await page.waitForChanges();
|
|
391
|
+
expect(message.textContent).toEqual('tecton.element.calendar.hint.format: mm/dd/yyyy');
|
|
392
|
+
expect(message).toEqualAttribute('type', 'info');
|
|
393
|
+
});
|
|
394
|
+
it('does display error, if month value is impossible', async () => {
|
|
395
|
+
await innerInput.type('55');
|
|
396
|
+
expect(message.textContent).toEqual('tecton.element.calendar.hint.invalidDate: mm/dd/yyyy');
|
|
397
|
+
expect(message).toEqualAttribute('type', 'error');
|
|
398
|
+
});
|
|
399
|
+
it('does display error, if month is possible, but day value is impossible', async () => {
|
|
400
|
+
await innerInput.type('0144');
|
|
401
|
+
await page.waitForChanges();
|
|
402
|
+
expect(message.textContent).toEqual('tecton.element.calendar.hint.invalidDate: mm/dd/yyyy');
|
|
403
|
+
expect(message).toEqualAttribute('type', 'error');
|
|
404
|
+
});
|
|
405
|
+
it('does not open calendar popover when clicking input or typing', async () => {
|
|
406
|
+
expect(popover).not.toHaveAttribute('open');
|
|
407
|
+
await innerInput.type('11');
|
|
408
|
+
expect(popover).not.toHaveAttribute('open');
|
|
409
|
+
});
|
|
410
|
+
it('does open calendar popover when clicking q2-btn inside input slot-right', async () => {
|
|
411
|
+
await calendarButton.click();
|
|
412
|
+
await page.waitForChanges();
|
|
413
|
+
expect(popover).toHaveAttribute('open');
|
|
414
|
+
});
|
|
415
|
+
it('closes the popover when the input field is clicked', async () => {
|
|
416
|
+
await calendarButton.click();
|
|
417
|
+
await page.waitForChanges();
|
|
418
|
+
expect(popover).toHaveAttribute('open');
|
|
419
|
+
await calendarField.click();
|
|
420
|
+
await page.waitForChanges();
|
|
421
|
+
expect(popover).not.toHaveAttribute('open');
|
|
422
|
+
});
|
|
423
|
+
it('closes the popover when the input field is focused', async () => {
|
|
424
|
+
await calendarButton.click();
|
|
425
|
+
await page.waitForChanges();
|
|
426
|
+
expect(popover).toHaveAttribute('open');
|
|
427
|
+
await calendarField.focus();
|
|
428
|
+
await page.waitForChanges();
|
|
429
|
+
expect(popover).not.toHaveAttribute('open');
|
|
430
|
+
});
|
|
365
431
|
});
|
|
366
432
|
describe('when value is present', () => {
|
|
367
433
|
let page;
|
|
@@ -1133,46 +1199,6 @@ describe('q2-calendar', () => {
|
|
|
1133
1199
|
expect(tenth).toHaveClass('is-valid');
|
|
1134
1200
|
expect(twentyFirst).toHaveClass('is-valid');
|
|
1135
1201
|
});
|
|
1136
|
-
describe('when typing date', () => {
|
|
1137
|
-
let page;
|
|
1138
|
-
let innerInput;
|
|
1139
|
-
let message;
|
|
1140
|
-
let messageHint;
|
|
1141
|
-
beforeEach(async () => {
|
|
1142
|
-
page = await setup({
|
|
1143
|
-
html: `<q2-calendar
|
|
1144
|
-
label="Calendar Label"
|
|
1145
|
-
placeholder="Calendar Placeholder"
|
|
1146
|
-
typeable
|
|
1147
|
-
></q2-calendar>`,
|
|
1148
|
-
});
|
|
1149
|
-
innerInput = await page.find('q2-calendar >>> [test-id="inputAndCalendarToggle"]');
|
|
1150
|
-
message = await page.find('q2-calendar >>> q2-message');
|
|
1151
|
-
messageHint = await page.find('q2-calendar >>> .calendar-hint');
|
|
1152
|
-
await innerInput.setProperty('value', ''); // clear existing default value
|
|
1153
|
-
await innerInput.click();
|
|
1154
|
-
});
|
|
1155
|
-
it('does not display error , if month value is possible', async () => {
|
|
1156
|
-
await innerInput.type('10');
|
|
1157
|
-
expect(message.textContent).toEqual('tecton.element.calendar.hint.format: mm/dd/yyyy');
|
|
1158
|
-
expect(messageHint).toEqualAttribute('type', 'info');
|
|
1159
|
-
});
|
|
1160
|
-
it('does not display error , if month and day values are possible', async () => {
|
|
1161
|
-
await innerInput.type('0122');
|
|
1162
|
-
expect(message.textContent).toEqual('tecton.element.calendar.hint.format: mm/dd/yyyy');
|
|
1163
|
-
expect(messageHint).toEqualAttribute('type', 'info');
|
|
1164
|
-
});
|
|
1165
|
-
it('does display error, if month value is impossible', async () => {
|
|
1166
|
-
await innerInput.type('55');
|
|
1167
|
-
expect(message.textContent).toEqual('tecton.element.calendar.hint.invalidDate: mm/dd/yyyy');
|
|
1168
|
-
expect(messageHint).toEqualAttribute('type', 'error');
|
|
1169
|
-
});
|
|
1170
|
-
it('does display error, if month is possible, but day value is impossible', async () => {
|
|
1171
|
-
await innerInput.type('0144');
|
|
1172
|
-
expect(message.textContent).toEqual('tecton.element.calendar.hint.invalidDate: mm/dd/yyyy');
|
|
1173
|
-
expect(messageHint).toEqualAttribute('type', 'error');
|
|
1174
|
-
});
|
|
1175
|
-
});
|
|
1176
1202
|
it('prioritizes invalidDates over checksum and validDates', async () => {
|
|
1177
1203
|
page = await setup({
|
|
1178
1204
|
html: `
|