@mgdis/mg-components 5.19.2 → 5.19.3

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 (178) hide show
  1. package/dist/cjs/{components.utils-dc9c8a53.js → components.utils-69435877.js} +2 -2
  2. package/dist/cjs/components.utils-69435877.js.map +1 -0
  3. package/dist/cjs/{index-c042e24b.js → index-60dd0c56.js} +143 -58
  4. package/dist/cjs/index-60dd0c56.js.map +1 -0
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/mg-action-more_34.cjs.entry.js +306 -238
  7. package/dist/cjs/mg-action-more_34.cjs.entry.js.map +1 -1
  8. package/dist/cjs/mg-components.cjs.js +3 -3
  9. package/dist/cjs/mg-components.cjs.js.map +1 -1
  10. package/dist/cjs/mg-item-more.cjs.entry.js +2 -2
  11. package/dist/cjs/mg-item-more.cjs.entry.js.map +1 -1
  12. package/dist/collection/assets/icons/index.js +190 -182
  13. package/dist/collection/collection-manifest.json +3 -3
  14. package/dist/collection/components/atoms/mg-button/mg-button.js +15 -0
  15. package/dist/collection/components/atoms/mg-button/mg-button.js.map +1 -1
  16. package/dist/collection/components/atoms/mg-button/test/mg-button.e2e.js +1 -1
  17. package/dist/collection/components/atoms/mg-button/test/mg-button.e2e.js.map +1 -1
  18. package/dist/collection/components/atoms/mg-button/test/mg-button.spec.js +54 -4
  19. package/dist/collection/components/atoms/mg-button/test/mg-button.spec.js.map +1 -1
  20. package/dist/collection/components/atoms/mg-card/test/mg-card.e2e.js +2 -2
  21. package/dist/collection/components/atoms/mg-card/test/mg-card.e2e.js.map +1 -1
  22. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js +1 -1
  23. package/dist/collection/components/atoms/mg-tooltip/test/mg-tooltip.spec.js +1 -1
  24. package/dist/collection/components/atoms/mg-tooltip/test/mg-tooltip.spec.js.map +1 -1
  25. package/dist/collection/components/molecules/inputs/MgInput.conf.js +8 -0
  26. package/dist/collection/components/molecules/inputs/MgInput.conf.js.map +1 -1
  27. package/dist/collection/components/molecules/inputs/MgInput.js.map +1 -1
  28. package/dist/collection/components/molecules/inputs/mg-input-checkbox/MgInputCheckboxList.js +2 -2
  29. package/dist/collection/components/molecules/inputs/mg-input-checkbox/MgInputCheckboxList.js.map +1 -1
  30. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js +13 -12
  31. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js.map +1 -1
  32. package/dist/collection/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.spec.js +4 -10
  33. package/dist/collection/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.spec.js.map +1 -1
  34. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.js +9 -2
  35. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.js.map +1 -1
  36. package/dist/collection/components/molecules/inputs/mg-input-date/test/mg-input-date.spec.js +4 -0
  37. package/dist/collection/components/molecules/inputs/mg-input-date/test/mg-input-date.spec.js.map +1 -1
  38. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js +11 -4
  39. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js.map +1 -1
  40. package/dist/collection/components/molecules/inputs/mg-input-numeric/test/mg-input-numeric.spec.js +4 -0
  41. package/dist/collection/components/molecules/inputs/mg-input-numeric/test/mg-input-numeric.spec.js.map +1 -1
  42. package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.js +9 -2
  43. package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.js.map +1 -1
  44. package/dist/collection/components/molecules/inputs/mg-input-password/test/mg-input-password.spec.js +4 -0
  45. package/dist/collection/components/molecules/inputs/mg-input-password/test/mg-input-password.spec.js.map +1 -1
  46. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js +7 -1
  47. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js.map +1 -1
  48. package/dist/collection/components/molecules/inputs/mg-input-radio/test/mg-input-radio.spec.js +4 -0
  49. package/dist/collection/components/molecules/inputs/mg-input-radio/test/mg-input-radio.spec.js.map +1 -1
  50. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js +9 -2
  51. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js.map +1 -1
  52. package/dist/collection/components/molecules/inputs/mg-input-select/test/mg-input-select.spec.js +4 -0
  53. package/dist/collection/components/molecules/inputs/mg-input-select/test/mg-input-select.spec.js.map +1 -1
  54. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.conf.js +0 -4
  55. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.conf.js.map +1 -1
  56. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js +9 -2
  57. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js.map +1 -1
  58. package/dist/collection/components/molecules/inputs/mg-input-text/test/mg-input-text.spec.js +2 -0
  59. package/dist/collection/components/molecules/inputs/mg-input-text/test/mg-input-text.spec.js.map +1 -1
  60. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js +9 -2
  61. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js.map +1 -1
  62. package/dist/collection/components/molecules/inputs/mg-input-textarea/test/mg-input-textarea.spec.js +2 -0
  63. package/dist/collection/components/molecules/inputs/mg-input-textarea/test/mg-input-textarea.spec.js.map +1 -1
  64. package/dist/collection/components/molecules/inputs/mg-input-toggle/test/mg-input-toggle.e2e.playwright.js +1 -1
  65. package/dist/collection/components/molecules/inputs/mg-input-toggle/test/mg-input-toggle.e2e.playwright.js.map +1 -1
  66. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.js +1 -1
  67. package/dist/collection/components/molecules/menu/mg-menu-item/mg-menu-item.js.map +1 -1
  68. package/dist/collection/components/molecules/menu/mg-menu-item/test/mg-menu-item.e2e.playwright.js +2 -2
  69. package/dist/collection/components/molecules/menu/mg-menu-item/test/mg-menu-item.e2e.playwright.js.map +1 -1
  70. package/dist/collection/components/molecules/mg-action-more/mg-action-more.conf.js.map +1 -1
  71. package/dist/collection/components/molecules/mg-action-more/mg-action-more.js +2 -2
  72. package/dist/collection/components/molecules/mg-action-more/mg-action-more.js.map +1 -1
  73. package/dist/collection/components/molecules/mg-action-more/test/mg-action-more.e2e.playwright.js +8 -0
  74. package/dist/collection/components/molecules/mg-action-more/test/mg-action-more.e2e.playwright.js.map +1 -1
  75. package/dist/collection/components/molecules/mg-action-more/test/mg-action-more.spec.js +8 -0
  76. package/dist/collection/components/molecules/mg-action-more/test/mg-action-more.spec.js.map +1 -1
  77. package/dist/collection/components/molecules/mg-form/mg-form.js +1 -9
  78. package/dist/collection/components/molecules/mg-form/mg-form.js.map +1 -1
  79. package/dist/collection/components/molecules/mg-form/test/mg-form.spec.js +44 -29
  80. package/dist/collection/components/molecules/mg-form/test/mg-form.spec.js.map +1 -1
  81. package/dist/collection/components/molecules/mg-modal/test/mg-modal.e2e.playwright.js +1 -1
  82. package/dist/collection/components/molecules/mg-modal/test/mg-modal.e2e.playwright.js.map +1 -1
  83. package/dist/collection/components/molecules/mg-panel/test/mg-panel.e2e.playwright.js +1 -1
  84. package/dist/collection/components/molecules/mg-panel/test/mg-panel.e2e.playwright.js.map +1 -1
  85. package/dist/collection/components/molecules/mg-popover/mg-popover.js +1 -1
  86. package/dist/collection/utils/behaviors.utils.js.map +1 -1
  87. package/dist/collection/utils/components.utils.js +1 -1
  88. package/dist/collection/utils/components.utils.js.map +1 -1
  89. package/dist/collection/utils/components.utils.spec.js +5 -0
  90. package/dist/collection/utils/components.utils.spec.js.map +1 -1
  91. package/dist/components/MgInput.js +9 -1
  92. package/dist/components/MgInput.js.map +1 -1
  93. package/dist/components/components.utils.js +1 -1
  94. package/dist/components/components.utils.js.map +1 -1
  95. package/dist/components/mg-action-more.js +1 -1
  96. package/dist/components/mg-action-more.js.map +1 -1
  97. package/dist/components/mg-button2.js +15 -0
  98. package/dist/components/mg-button2.js.map +1 -1
  99. package/dist/components/mg-form.js +1 -9
  100. package/dist/components/mg-form.js.map +1 -1
  101. package/dist/components/mg-icon2.js +198 -182
  102. package/dist/components/mg-icon2.js.map +1 -1
  103. package/dist/components/mg-input-checkbox-paginated2.js +2 -2
  104. package/dist/components/mg-input-checkbox-paginated2.js.map +1 -1
  105. package/dist/components/mg-input-checkbox.js +13 -12
  106. package/dist/components/mg-input-checkbox.js.map +1 -1
  107. package/dist/components/mg-input-date.js +9 -3
  108. package/dist/components/mg-input-date.js.map +1 -1
  109. package/dist/components/mg-input-numeric.js +11 -5
  110. package/dist/components/mg-input-numeric.js.map +1 -1
  111. package/dist/components/mg-input-password.js +9 -3
  112. package/dist/components/mg-input-password.js.map +1 -1
  113. package/dist/components/mg-input-radio.js +8 -3
  114. package/dist/components/mg-input-radio.js.map +1 -1
  115. package/dist/components/mg-input-select2.js +9 -3
  116. package/dist/components/mg-input-select2.js.map +1 -1
  117. package/dist/components/mg-input-text2.js +9 -3
  118. package/dist/components/mg-input-text2.js.map +1 -1
  119. package/dist/components/mg-input-textarea.js +9 -3
  120. package/dist/components/mg-input-textarea.js.map +1 -1
  121. package/dist/components/mg-item-more.js.map +1 -1
  122. package/dist/components/mg-menu-item2.js +2 -2
  123. package/dist/components/mg-menu-item2.js.map +1 -1
  124. package/dist/components/mg-message.js +1 -1
  125. package/dist/components/mg-message.js.map +1 -1
  126. package/dist/components/mg-popover-content2.js +1 -1
  127. package/dist/components/mg-popover-content2.js.map +1 -1
  128. package/dist/components/popper.js +6 -12
  129. package/dist/components/popper.js.map +1 -1
  130. package/dist/esm/{components.utils-0f76010d.js → components.utils-6cf27db1.js} +2 -2
  131. package/dist/esm/components.utils-6cf27db1.js.map +1 -0
  132. package/dist/esm/{index-ce01e63b.js → index-0f833068.js} +143 -58
  133. package/dist/esm/index-0f833068.js.map +1 -0
  134. package/dist/esm/loader.js +3 -3
  135. package/dist/esm/mg-action-more_34.entry.js +306 -238
  136. package/dist/esm/mg-action-more_34.entry.js.map +1 -1
  137. package/dist/esm/mg-components.js +4 -4
  138. package/dist/esm/mg-components.js.map +1 -1
  139. package/dist/esm/mg-item-more.entry.js +2 -2
  140. package/dist/esm/mg-item-more.entry.js.map +1 -1
  141. package/dist/mg-components/mg-components.css +1 -1
  142. package/dist/mg-components/mg-components.esm.js +1 -1
  143. package/dist/mg-components/mg-components.esm.js.map +1 -1
  144. package/dist/mg-components/p-10ed4425.entry.js +2 -0
  145. package/dist/mg-components/p-10ed4425.entry.js.map +1 -0
  146. package/dist/mg-components/{p-c9e2c669.js → p-36a51c5e.js} +2 -2
  147. package/dist/mg-components/p-36a51c5e.js.map +1 -0
  148. package/dist/mg-components/{p-01ebc95a.entry.js → p-91feda5a.entry.js} +2 -2
  149. package/dist/mg-components/p-91feda5a.entry.js.map +1 -0
  150. package/dist/mg-components/p-9b12021b.js +3 -0
  151. package/dist/mg-components/p-9b12021b.js.map +1 -0
  152. package/dist/types/components/atoms/mg-button/mg-button.d.ts +4 -0
  153. package/dist/types/components/molecules/inputs/MgInput.conf.d.ts +7 -0
  154. package/dist/types/components/molecules/inputs/MgInput.d.ts +2 -1
  155. package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.d.ts +4 -2
  156. package/dist/types/components/molecules/inputs/mg-input-date/mg-input-date.d.ts +1 -0
  157. package/dist/types/components/molecules/inputs/mg-input-numeric/mg-input-numeric.d.ts +1 -0
  158. package/dist/types/components/molecules/inputs/mg-input-password/mg-input-password.d.ts +1 -0
  159. package/dist/types/components/molecules/inputs/mg-input-radio/mg-input-radio.d.ts +1 -0
  160. package/dist/types/components/molecules/inputs/mg-input-select/mg-input-select.d.ts +1 -0
  161. package/dist/types/components/molecules/inputs/mg-input-text/mg-input-text.conf.d.ts +1 -6
  162. package/dist/types/components/molecules/inputs/mg-input-text/mg-input-text.d.ts +1 -0
  163. package/dist/types/components/molecules/inputs/mg-input-textarea/mg-input-textarea.d.ts +1 -0
  164. package/dist/types/components/molecules/menu/mg-menu-item/mg-menu-item.d.ts +1 -1
  165. package/dist/types/components/molecules/mg-action-more/mg-action-more.conf.d.ts +1 -0
  166. package/dist/types/components/molecules/mg-form/mg-form.d.ts +0 -1
  167. package/dist/types/components.d.ts +2 -2
  168. package/package.json +35 -35
  169. package/dist/cjs/components.utils-dc9c8a53.js.map +0 -1
  170. package/dist/cjs/index-c042e24b.js.map +0 -1
  171. package/dist/esm/components.utils-0f76010d.js.map +0 -1
  172. package/dist/esm/index-ce01e63b.js.map +0 -1
  173. package/dist/mg-components/p-01ebc95a.entry.js.map +0 -1
  174. package/dist/mg-components/p-1aa89acf.js +0 -3
  175. package/dist/mg-components/p-1aa89acf.js.map +0 -1
  176. package/dist/mg-components/p-71a5a848.entry.js +0 -2
  177. package/dist/mg-components/p-71a5a848.entry.js.map +0 -1
  178. package/dist/mg-components/p-c9e2c669.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"mg-input-checkbox.spec.js","sourceRoot":"","sources":["../../../../../../src/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h } from '@stencil/core';\nimport { newSpecPage } from '@stencil/core/testing';\nimport { cloneDeep, mockConsoleError, mockWindowFrames, setupResizeObserverMock } from '../../../../../utils/unit.test.utils';\nimport { MgInputCheckbox } from '../mg-input-checkbox';\nimport messages from '../../../../../locales/en/messages.json';\nimport { CheckboxValue, checkboxTypes } from '../mg-input-checkbox.conf';\nimport { MgPopover } from '../../../mg-popover/mg-popover';\nimport { MgInputText } from '../../mg-input-text/mg-input-text';\nimport { MgMessage } from '../../../mg-message/mg-message';\nimport { MgPagination } from '../../../mg-pagination/mg-pagination';\nimport { MgButton } from '../../../../atoms/mg-button/mg-button';\nimport { MgInputCheckboxPaginated } from '../mg-input-checkbox-paginated/mg-input-checkbox-paginated';\nimport { MgPopoverContent } from '../../../mg-popover/mg-popover-content/mg-popover-content';\n\nmockWindowFrames();\nmockConsoleError();\n\nconst getPage = args => {\n const page = newSpecPage({\n components: [MgInputCheckbox, MgPopover, MgPopoverContent, MgInputText, MgMessage, MgPagination, MgButton, MgInputCheckboxPaginated],\n template: () => <mg-input-checkbox {...args}></mg-input-checkbox>,\n });\n\n jest.runAllTimers();\n return page;\n};\n\ndescribe('mg-input-checkbox', () => {\n beforeEach(() => {\n jest.useFakeTimers();\n setupResizeObserverMock({\n observe: () => null,\n disconnect: () => null,\n });\n });\n\n afterEach(() => jest.runOnlyPendingTimers());\n\n const items: CheckboxValue[] = [\n { title: 'batman', value: true },\n { title: 'robin', value: false, disabled: true },\n { title: 'joker', value: false },\n { title: 'bane', value: null },\n ];\n\n describe.each([...checkboxTypes, undefined])('render by type %s', type => {\n let testValues: unknown[] = [\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type, readonly: true },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type, labelOnTop: true },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type, labelHide: true },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type, inputVerticalList: true },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type, required: true },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type, required: true, readonly: true, helpText: 'Hello joker' },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type, required: true, disabled: true, helpText: 'Hello joker' },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type, readonly: true, labelOnTop: true, tooltip: 'Tooltip message' },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type, disabled: true },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type, helpText: 'Hello joker' },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type, tooltip: 'Batman is a DC Comics license' },\n ];\n if (type === 'multi') {\n testValues = [\n ...testValues,\n ...[true, false].flatMap(displaySelectedValues =>\n [\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type: 'multi', readonly: true },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type: 'multi', disabled: true },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type: 'multi', helpText: 'Hello joker' },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type: 'multi', tooltip: 'Batman is a DC Comics license' },\n ].map(args => ({ ...args, displaySelectedValues })),\n ),\n ];\n }\n test.each(testValues)('Should render with args %s:', async args => {\n const { root } = await getPage(args);\n expect(root).toMatchSnapshot();\n });\n\n test.each(['', ' ', undefined])('Should not render with invalid identifier property: %s', async identifier => {\n expect.assertions(1);\n try {\n await getPage({ identifier, type, value: cloneDeep(items) });\n } catch (err) {\n expect(err.message).toMatch('<mg-input> prop \"identifier\" is required.');\n }\n });\n\n test.each(['', ' ', undefined])('Should not render with invalid label property: %s', async label => {\n expect.assertions(1);\n try {\n await getPage({ identifier: 'identifier', type, label, value: cloneDeep(items) });\n } catch (err) {\n expect(err.message).toMatch('<mg-input> prop \"label\" is required.');\n }\n });\n\n test('Should not render when using labelOnTop and labelHide: %s', async () => {\n expect.assertions(1);\n try {\n await getPage({ identifier: 'identifier', type, label: 'label', value: cloneDeep(items), labelOnTop: true, labelHide: true });\n } catch (err) {\n expect(err.message).toMatch('<mg-input> prop \"labelOnTop\" must not be paired with the prop \"labelHide\".');\n }\n });\n\n test.each([\n { identifier: 'identifier', type, label: 'label', value: undefined },\n { identifier: 'identifier', type, label: 'label', value: ['batman', 'joker', 'bane'] },\n ])('Should not render with invalid value property: %s', async args => {\n expect.assertions(1);\n try {\n await getPage(args);\n } catch (err) {\n expect(err.message).toMatch('<mg-input-checkbox> prop \"value\" is required and all values must be the same type, CheckboxItem.');\n }\n });\n\n test.each([true, false])('Should trigger events, case validity check %s', async validity => {\n const value = items.map((item, index) => ({ ...item, value: false, id: index, required: item.required, disabled: item.disabled, hero: 'batman' }));\n value[0].value = !validity;\n const page = await getPage({ label: 'label', type, identifier: 'identifier', helpText: 'My help text', value, required: true });\n const element = page.doc.querySelector('mg-input-checkbox');\n const allInputs = element.shadowRoot.querySelectorAll('input');\n const index = validity ? 2 : 0;\n const input = allInputs[index];\n\n //mock validity\n allInputs.forEach(input => {\n input.checkValidity = jest.fn(() => validity);\n Object.defineProperty(input, 'validity', {\n get: jest.fn(() => ({\n valueMissing: !validity,\n })),\n });\n });\n\n jest.spyOn(page.rootInstance.valueChange, 'emit');\n\n input.dispatchEvent(new CustomEvent('focus', { bubbles: true }));\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot(); //Snapshot on focus\n\n input.checked = validity;\n input.dispatchEvent(new CustomEvent('input', { bubbles: true }));\n\n const emittedValue = value;\n emittedValue[index].value = input.checked;\n await page.waitForChanges();\n expect(page.rootInstance.valueChange.emit).toHaveBeenCalledWith(emittedValue);\n\n input.dispatchEvent(new CustomEvent('blur', { bubbles: true }));\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot(); //Snapshot on blur\n });\n\n describe.each(['readonly', 'disabled'])('validity, case next state is %s', nextState => {\n test.each([\n { validity: true, valueMissing: false },\n { validity: false, valueMissing: true },\n { validity: false, valueMissing: false },\n ])('validity (%s), valueMissing (%s)', async ({ validity, valueMissing }) => {\n const value = items.map((item, index) => ({ ...item, value: !valueMissing && index === 1 }));\n const args = { label: 'label', identifier: 'identifier', type, value, helpText: 'My help text', required: true };\n const page = await getPage(args);\n const element = page.doc.querySelector('mg-input-checkbox');\n const allInputs = element.shadowRoot.querySelectorAll('input');\n const input = allInputs[0];\n\n //mock validity\n allInputs.forEach(input => {\n input.checkValidity = jest.fn(() => validity);\n Object.defineProperty(input, 'validity', {\n get: jest.fn(() => ({\n valueMissing,\n })),\n });\n });\n\n input.dispatchEvent(new CustomEvent('blur', { bubbles: true }));\n await page.waitForChanges();\n\n if (validity) {\n expect(page.rootInstance.errorMessage).toBeUndefined();\n } else if (valueMissing) {\n expect(page.rootInstance.errorMessage).toEqual(messages.errors.required);\n }\n expect(page.rootInstance.valid).toEqual(validity);\n expect(page.rootInstance.invalid).toEqual(!validity);\n\n if (valueMissing) {\n expect(page.root).toMatchSnapshot(); //Snapshot with readonly/disabled FALSE\n element[nextState] = true;\n await page.waitForChanges();\n expect(page.root).toMatchSnapshot(); //Snapshot with readonly/disabled TRUE\n }\n });\n });\n test.each([\n {\n valid: true,\n errorMessage: 'Override error',\n },\n {\n valid: false,\n errorMessage: 'Override error',\n },\n ])(\"should display override error with setError component's public method\", async params => {\n const page = await getPage({ label: 'label', identifier: 'identifier', type, value: cloneDeep(items), helpText: 'My help text', required: true });\n\n expect(page.root).toMatchSnapshot();\n\n const element = page.doc.querySelector('mg-input-checkbox');\n const inputs = Array.from(element.shadowRoot.querySelectorAll('input'));\n\n //mock validity\n inputs.forEach(input => {\n Object.defineProperty(input, 'validity', {\n get: () => ({}),\n });\n });\n\n await element.setError(params.valid, params.errorMessage);\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n test.each([\n {\n valid: '',\n errorMessage: 'Override error',\n error: '<mg-input-checkbox> method \"setError()\" param \"valid\" must be a boolean',\n },\n {\n valid: undefined,\n errorMessage: 'Override error',\n error: '<mg-input-checkbox> method \"setError()\" param \"valid\" must be a boolean',\n },\n {\n valid: true,\n errorMessage: ' ',\n error: '<mg-input-checkbox> method \"setError()\" param \"errorMessage\" must be a string',\n },\n {\n valid: true,\n errorMessage: true,\n error: '<mg-input-checkbox> method \"setError()\" param \"errorMessage\" must be a string',\n },\n ])(\"shloud throw error with setError component's public method invalid params\", async params => {\n expect.assertions(1);\n try {\n const page = await getPage({ label: 'label', identifier: 'identifier', type, value: cloneDeep(items), helpText: 'My help text', required: true });\n const element = page.doc.querySelector('mg-input-checkbox');\n\n await element.setError(params.valid as unknown as boolean, params.errorMessage as unknown as string);\n await page.waitForChanges();\n } catch (err) {\n expect(err.message).toMatch(params.error);\n }\n });\n\n test(\"display error with displayError component's public method\", async () => {\n const value = cloneDeep(items);\n value[0].value = false;\n const page = await getPage({ label: 'label', identifier: 'identifier', type, value, helpText: 'My help text', required: true });\n\n expect(page.root).toMatchSnapshot();\n\n const element = page.doc.querySelector('mg-input-checkbox');\n const allInputs = element.shadowRoot.querySelectorAll('input');\n\n //mock validity\n allInputs.forEach(input => {\n input.checkValidity = jest.fn(() => false);\n Object.defineProperty(input, 'validity', {\n get: jest.fn(() => ({\n valueMissing: true,\n })),\n });\n });\n\n await element.displayError();\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n test.each(['fr', 'xx'])('Should render component error with locale: %s', async lang => {\n const value = cloneDeep(items);\n value[0].value = false;\n const page = await getPage({ label: 'label', identifier: 'identifier', type, value, helpText: 'My help text', required: true, lang });\n const element = page.doc.querySelector('mg-input-checkbox');\n const allInputs = element.shadowRoot.querySelectorAll('input');\n\n //mock validity\n allInputs.forEach(input => {\n input.checkValidity = jest.fn(() => false);\n Object.defineProperty(input, 'validity', {\n get: jest.fn(() => ({\n valueMissing: true,\n })),\n });\n });\n\n await element.displayError();\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n test.each([[[true, false].flatMap(value => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map(item => ({ title: item.toString(), value })))]])(\n 'Should render component with locale \"fr\"',\n async value => {\n const page = await getPage({ label: 'label', identifier: 'identifier', value, lang: 'fr' });\n\n expect(page.root).toMatchSnapshot();\n },\n );\n\n test('Should remove error on input when required change dynamically', async () => {\n const page = await getPage({\n label: 'label',\n identifier: 'identifier',\n value: [\n { title: 'batman', value: false },\n { title: 'robin', value: false },\n ],\n required: true,\n type,\n });\n const element = page.doc.querySelector('mg-input-checkbox');\n const allInputs = element.shadowRoot.querySelectorAll('input');\n\n //mock validity\n allInputs[0].checkValidity = jest\n .fn()\n .mockReturnValueOnce(false) //1\n .mockReturnValueOnce(false) //1\n .mockReturnValueOnce(true) //2\n .mockReturnValueOnce(true) //2\n .mockReturnValueOnce(false) //3\n .mockReturnValueOnce(false); //3\n allInputs[1].checkValidity = jest.fn().mockReturnValueOnce(true).mockReturnValueOnce(true); //2\n Object.defineProperty(allInputs[0], 'validity', {\n get: jest\n .fn()\n .mockReturnValueOnce({\n valueMissing: true, //1\n })\n .mockReturnValueOnce({\n valueMissing: false, //2\n })\n .mockReturnValueOnce({\n valueMissing: true, //3\n }),\n });\n\n await element.displayError();\n await page.waitForChanges();\n\n expect(page.rootInstance.hasDisplayedError).toEqual(true);\n expect(page.rootInstance.errorMessage).toEqual(messages.errors.required);\n\n element.required = false;\n await page.waitForChanges();\n\n // Error message should disapear and change the hasDisplayedError status\n expect(page.rootInstance.hasDisplayedError).toEqual(false);\n expect(page.rootInstance.errorMessage).toBeUndefined();\n\n element.required = true;\n await page.waitForChanges();\n\n // If back on required the message is still not displayed\n expect(page.rootInstance.hasDisplayedError).toEqual(false);\n expect(page.rootInstance.errorMessage).toBeUndefined();\n });\n\n test('should enable \"displaySearchInput\" when value list is greater than 10', async () => {\n const value = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map(item => ({\n title: `item ${item}`,\n value: false,\n }));\n const { root } = await getPage({ label: 'label', identifier: 'identifier', value, type });\n expect(root).toMatchSnapshot();\n });\n });\n\n describe('navigation', () => {\n test('should NOT manage keyboard \"tab\" navigation on \"checkbox\" type', async () => {\n const page = await getPage({ label: 'label', identifier: 'identifier', value: cloneDeep(items), type: 'checkbox', tooltip: 'Tooltip message' });\n const element = page.doc.querySelector('mg-input-checkbox');\n const allInputs = Array.from(element.shadowRoot.querySelectorAll('input'));\n\n allInputs.forEach(input => input.dispatchEvent(new KeyboardEvent('keydown', { key: 'Tab' })));\n jest.runOnlyPendingTimers();\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n\n allInputs[0].dispatchEvent(new KeyboardEvent('keydown', { key: 'Tab' }));\n jest.runOnlyPendingTimers();\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n test.each(['next', 'prev'])('should manage keyboard \"tab\" navigation on \"multi\" type', async direction => {\n const page = await getPage({\n label: 'label',\n identifier: 'identifier',\n value: [1, 2, 3, 4, 5, 6, 7, 8, 9].map(item => ({\n title: `item ${item}`,\n value: false,\n })),\n type: 'multi',\n tooltip: 'Tooltip message',\n });\n const element = page.doc.querySelector('mg-input-checkbox');\n const allInputs = Array.from(element.shadowRoot.querySelectorAll('input'));\n const button = element.shadowRoot.querySelector('mg-button');\n const popover = element.shadowRoot.querySelector('mg-popover');\n\n button.dispatchEvent(new CustomEvent('click', { bubbles: true }));\n jest.runOnlyPendingTimers();\n await page.waitForChanges();\n\n expect(popover.display).toEqual(true);\n\n if (direction === 'next') for await (const input of allInputs) input.dispatchEvent(new KeyboardEvent('keydown', { key: 'Tab' }));\n else if (direction === 'prev') allInputs[0].dispatchEvent(new KeyboardEvent('keydown', { key: 'Tab', shiftKey: true }));\n jest.runOnlyPendingTimers();\n await page.waitForChanges();\n\n expect(popover.display).toEqual(false);\n });\n\n test('should manage keyboard \"shift+tab\" navigation on \"multi\" type', async () => {\n const page = await getPage({\n label: 'label',\n identifier: 'identifier',\n value: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map(item => ({\n title: `item ${item}`,\n value: false,\n })),\n type: 'multi',\n tooltip: 'Tooltip message',\n });\n const element = page.doc.querySelector('mg-input-checkbox');\n const searchInput = element.shadowRoot.querySelector('mg-input-text').shadowRoot.querySelector('input');\n const button = element.shadowRoot.querySelector('mg-button');\n const popover = element.shadowRoot.querySelector('mg-popover');\n\n button.dispatchEvent(new CustomEvent('click', { bubbles: true }));\n jest.runOnlyPendingTimers();\n await page.waitForChanges();\n\n expect(popover.display).toEqual(true);\n\n searchInput.dispatchEvent(new KeyboardEvent('keydown', { key: 'Tab', shiftKey: true }));\n jest.runOnlyPendingTimers();\n await page.waitForChanges();\n\n expect(popover.display).toEqual(false);\n });\n });\n\n test.each([' ', 'batman'])('Should not render with invalid type property: %s', async type => {\n expect.assertions(1);\n try {\n await getPage({ identifier: 'identifier', type, label: 'label', value: cloneDeep(items) });\n } catch (err) {\n expect(err.message).toMatch('<mg-input-checkbox> prop \"type\" must be a CheckboxType.');\n }\n });\n\n test.each([undefined, 'checkbox'])('Should not render with invalid displaySelectedValues and type configuration', async type => {\n expect.assertions(1);\n try {\n await getPage({ label: 'label', identifier: 'identifier', type, value: cloneDeep(items), displaySelectedValues: true });\n } catch (err) {\n expect(err.message).toMatch('<mg-input-checkbox> prop \"displaySelectedValues\" can only be used with prop type \"multi\".');\n }\n });\n\n describe('multi search', () => {\n test('should enable return search result and update pagination', async () => {\n const value = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21].map(item => ({\n title: `item ${item}`,\n value: false,\n }));\n const getResultList = (mgInputCheckbox: HTMLMgInputCheckboxElement) => Array.from(mgInputCheckbox.shadowRoot.querySelectorAll('li'));\n const page = await getPage({ label: 'label', identifier: 'identifier', value });\n expect(page.root).toMatchSnapshot();\n\n const mgInputCheckbox = page.doc.querySelector('mg-input-checkbox');\n const mgPopover = mgInputCheckbox.shadowRoot.querySelector('mg-popover');\n const searchInput = mgInputCheckbox.shadowRoot.querySelector('mg-input-text');\n\n mgPopover.display = true;\n await page.waitForChanges();\n jest.runOnlyPendingTimers();\n\n let resultList = getResultList(mgInputCheckbox);\n\n expect(resultList.length).toEqual(10);\n\n searchInput.dispatchEvent(new CustomEvent('value-change', { detail: '2' }));\n await page.waitForChanges();\n\n resultList = getResultList(mgInputCheckbox);\n expect(resultList.length).toEqual(4);\n expect(page.root).toMatchSnapshot();\n\n searchInput.dispatchEvent(new CustomEvent('value-change', { detail: '11' }));\n await page.waitForChanges();\n\n resultList = getResultList(mgInputCheckbox);\n expect(resultList.length).toEqual(1);\n expect(page.root).toMatchSnapshot();\n\n searchInput.dispatchEvent(new CustomEvent('value-change', { detail: '111' }));\n await page.waitForChanges();\n\n resultList = getResultList(mgInputCheckbox);\n expect(resultList.length).toEqual(0);\n expect(page.root).toMatchSnapshot();\n\n mgPopover.display = false;\n await page.waitForChanges();\n jest.runOnlyPendingTimers();\n\n expect(searchInput.value).toEqual('');\n expect(page.root).toMatchSnapshot();\n });\n\n test('should search and update values', async () => {\n const value = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21].map(item => ({\n title: `item ${item}`,\n value: false,\n }));\n const page = await getPage({ label: 'label', identifier: 'identifier', value });\n expect(page.root).toMatchSnapshot();\n\n const mgInputCheckbox = page.doc.querySelector('mg-input-checkbox');\n const mgPopover = mgInputCheckbox.shadowRoot.querySelector('mg-popover');\n const searchInput = mgInputCheckbox.shadowRoot.querySelector('mg-input-text');\n\n mgPopover.display = true;\n await page.waitForChanges();\n jest.runOnlyPendingTimers();\n\n searchInput.dispatchEvent(new CustomEvent('value-change', { detail: '2' }));\n await page.waitForChanges();\n\n const input = mgInputCheckbox.shadowRoot.querySelector('input');\n input.checkValidity = () => true;\n input.checked = true;\n\n input.dispatchEvent(new CustomEvent('input', { bubbles: true }));\n await page.waitForChanges();\n\n expect(mgInputCheckbox.value.find(item => item.value)).toHaveProperty('title', 'item 2');\n expect(page.root).toMatchSnapshot();\n\n mgPopover.display = false;\n await page.waitForChanges();\n jest.runOnlyPendingTimers();\n\n expect(page.root).toMatchSnapshot();\n });\n\n test('should navigate across paginated list with mg-pagination', async () => {\n const value = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21].map(item => ({\n title: `item ${item}`,\n value: false,\n }));\n const getResultList = (mgInputCheckbox: HTMLMgInputCheckboxElement) => Array.from(mgInputCheckbox.shadowRoot.querySelectorAll('li'));\n const page = await getPage({ label: 'label', identifier: 'identifier', value });\n expect(page.root).toMatchSnapshot();\n\n const mgInputCheckbox = page.doc.querySelector('mg-input-checkbox');\n const mgPopover = mgInputCheckbox.shadowRoot.querySelector('mg-popover');\n const mgPagination = mgInputCheckbox.shadowRoot.querySelector('mg-pagination');\n const mgPaginationNext = mgPagination.shadowRoot.querySelector('mg-button:last-of-type');\n\n mgPopover.display = true;\n await page.waitForChanges();\n jest.runOnlyPendingTimers();\n\n let resultList = getResultList(mgInputCheckbox);\n\n expect(resultList.length).toEqual(10);\n\n mgPaginationNext.dispatchEvent(new MouseEvent('click', { bubbles: true }));\n await page.waitForChanges();\n\n resultList = getResultList(mgInputCheckbox);\n expect(resultList.length).toEqual(10);\n expect(page.root).toMatchSnapshot();\n\n mgPaginationNext.dispatchEvent(new MouseEvent('click', { bubbles: true }));\n await page.waitForChanges();\n\n resultList = getResultList(mgInputCheckbox);\n expect(resultList.length).toEqual(1);\n expect(page.root).toMatchSnapshot();\n });\n\n test('should update all values with mass actions', async () => {\n const value = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21].map(item => ({\n title: `item ${item}`,\n value: false,\n }));\n const getResultList = (mgInputCheckbox: HTMLMgInputCheckboxElement) => Array.from(mgInputCheckbox.shadowRoot.querySelectorAll('input'));\n const page = await getPage({ label: 'label', identifier: 'identifier', value });\n expect(page.root).toMatchSnapshot();\n\n const mgInputCheckbox = page.doc.querySelector('mg-input-checkbox');\n const mgPopover = mgInputCheckbox.shadowRoot.querySelector('mg-popover');\n\n mgPopover.display = true;\n await page.waitForChanges();\n jest.runOnlyPendingTimers();\n\n let resultList = getResultList(mgInputCheckbox);\n\n expect(resultList.filter(item => item.value === 'true').length).toEqual(0);\n expect(mgInputCheckbox.value.filter(item => item.value).length).toEqual(0);\n expect(page.root).toMatchSnapshot();\n\n const selectAllButton = mgInputCheckbox.shadowRoot.querySelector('mg-input-checkbox-paginated:last-of-type mg-button');\n selectAllButton.dispatchEvent(new MouseEvent('click', { bubbles: true }));\n await page.waitForChanges();\n\n resultList = getResultList(mgInputCheckbox);\n expect(resultList.filter(item => item.value === 'true').length).toEqual(10);\n expect(mgInputCheckbox.value.filter(item => item.value).length).toEqual(21);\n expect(page.root).toMatchSnapshot();\n\n const unselectAllButton = Array.from(\n mgInputCheckbox.shadowRoot.querySelectorAll('mg-input-checkbox-paginated .mg-c-input__input-checkbox-multi-section-header mg-button:last-of-type'),\n ).find(button => button.textContent === 'Unselect all');\n unselectAllButton.dispatchEvent(new MouseEvent('click', { bubbles: true }));\n await page.waitForChanges();\n\n resultList = getResultList(mgInputCheckbox);\n expect(resultList.filter(item => item.value === 'true').length).toEqual(0);\n expect(mgInputCheckbox.value.filter(item => item.value).length).toEqual(0);\n expect(page.root).toMatchSnapshot();\n });\n\n test('should toggle selected items section', async () => {\n const value = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21].map((item, index) => ({\n title: `item ${item}`,\n value: [5, 12, 13, 17].some(item => item === index),\n }));\n const page = await getPage({ label: 'label', identifier: 'identifier', value });\n\n const mgInputCheckbox = page.doc.querySelector('mg-input-checkbox');\n const mgPopover = mgInputCheckbox.shadowRoot.querySelector('mg-popover');\n\n mgPopover.display = true;\n await page.waitForChanges();\n jest.runOnlyPendingTimers();\n\n const sections = Array.from(mgInputCheckbox.shadowRoot.querySelectorAll('mg-input-checkbox-paginated'));\n\n expect(sections.length).toEqual(2);\n\n for (const [i, section] of sections.entries()) {\n const firstButton = section.querySelector('mg-button');\n const sectionContent = section.querySelector('.mg-c-input__input-checkbox-multi-section-content');\n expect(sectionContent).not.toHaveAttribute('hidden');\n\n firstButton.dispatchEvent(new MouseEvent('click', { bubbles: true }));\n await page.waitForChanges();\n\n if (i !== 0) {\n expect(sectionContent).not.toHaveAttribute('hidden');\n } else {\n expect(sectionContent).toHaveAttribute('hidden');\n }\n expect(page.root).toMatchSnapshot();\n }\n });\n\n test('should go to previous page when last item is checked', async () => {\n const value = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21].map(item => ({\n title: `item ${item}`,\n value: false,\n }));\n const page = await getPage({ label: 'label', identifier: 'identifier', value });\n const getResultList = (mgInputCheckbox: HTMLMgInputCheckboxElement) => Array.from(mgInputCheckbox.shadowRoot.querySelectorAll('input'));\n\n const mgInputCheckbox = page.doc.querySelector('mg-input-checkbox');\n const mgPopover = mgInputCheckbox.shadowRoot.querySelector('mg-popover');\n const mgPagination = mgInputCheckbox.shadowRoot.querySelector('mg-pagination:last-of-type');\n const mgPaginationNext = mgPagination.shadowRoot.querySelector('mg-button:last-of-type');\n\n mgPopover.display = true;\n await page.waitForChanges();\n jest.runOnlyPendingTimers();\n\n let resultList = getResultList(mgInputCheckbox);\n\n expect(resultList.length).toEqual(10);\n\n mgPaginationNext.dispatchEvent(new MouseEvent('click', { bubbles: true }));\n await page.waitForChanges();\n\n mgPaginationNext.dispatchEvent(new MouseEvent('click', { bubbles: true }));\n await page.waitForChanges();\n\n resultList = Array.from(mgInputCheckbox.shadowRoot.querySelectorAll('mg-input-checkbox-paginated:last-of-type input'));\n expect(resultList.length).toEqual(1);\n expect(page.root).toMatchSnapshot();\n\n const input = mgInputCheckbox.shadowRoot.querySelector('input');\n input.checkValidity = () => true;\n input.checked = true;\n\n input.dispatchEvent(new CustomEvent('input', { bubbles: true }));\n await page.waitForChanges();\n\n const firstSectionInputs = mgInputCheckbox.shadowRoot.querySelectorAll('mg-input-checkbox-paginated:first-of-type input');\n const lastSectionInputs = mgInputCheckbox.shadowRoot.querySelectorAll('mg-input-checkbox-paginated:last-of-type input');\n\n expect(firstSectionInputs.length).toEqual(1);\n expect(lastSectionInputs.length).toEqual(10);\n expect(page.root).toMatchSnapshot();\n });\n });\n});\n"]}
1
+ {"version":3,"file":"mg-input-checkbox.spec.js","sourceRoot":"","sources":["../../../../../../src/components/molecules/inputs/mg-input-checkbox/test/mg-input-checkbox.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import { h } from '@stencil/core';\nimport { newSpecPage } from '@stencil/core/testing';\nimport { cloneDeep, mockConsoleError, mockWindowFrames, setupResizeObserverMock } from '../../../../../utils/unit.test.utils';\nimport { MgInputCheckbox } from '../mg-input-checkbox';\nimport messages from '../../../../../locales/en/messages.json';\nimport { CheckboxValue, checkboxTypes } from '../mg-input-checkbox.conf';\nimport { MgPopover } from '../../../mg-popover/mg-popover';\nimport { MgInputText } from '../../mg-input-text/mg-input-text';\nimport { MgMessage } from '../../../mg-message/mg-message';\nimport { MgPagination } from '../../../mg-pagination/mg-pagination';\nimport { MgButton } from '../../../../atoms/mg-button/mg-button';\nimport { MgInputCheckboxPaginated } from '../mg-input-checkbox-paginated/mg-input-checkbox-paginated';\nimport { MgPopoverContent } from '../../../mg-popover/mg-popover-content/mg-popover-content';\nimport { MgInputTitle } from '../../../../atoms/mg-input-title/mg-input-title';\n\nmockWindowFrames();\nmockConsoleError();\n\nconst getPage = args => {\n const page = newSpecPage({\n components: [MgInputCheckbox, MgPopover, MgPopoverContent, MgInputText, MgMessage, MgPagination, MgButton, MgInputCheckboxPaginated, MgInputTitle],\n template: () => <mg-input-checkbox {...args}></mg-input-checkbox>,\n });\n\n jest.runAllTimers();\n return page;\n};\n\ndescribe('mg-input-checkbox', () => {\n beforeEach(() => {\n jest.useFakeTimers();\n setupResizeObserverMock({\n observe: () => null,\n disconnect: () => null,\n });\n });\n\n afterEach(() => jest.runOnlyPendingTimers());\n\n const items: CheckboxValue[] = [\n { title: 'batman', value: true },\n { title: 'robin', value: false, disabled: true },\n { title: 'joker', value: false },\n { title: 'bane', value: null },\n ];\n\n describe.each([...checkboxTypes, undefined])('render by type %s', type => {\n let testValues: unknown[] = [\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type, readonly: true },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type, labelOnTop: true },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type, labelHide: true },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type, inputVerticalList: true },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type, required: true },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type, required: true, readonly: true, helpText: 'Hello joker' },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type, required: true, disabled: true, helpText: 'Hello joker' },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type, readonly: true, labelOnTop: true, tooltip: 'Tooltip message' },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type, disabled: true },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type, helpText: 'Hello joker' },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type, tooltip: 'Batman is a DC Comics license' },\n ];\n if (type === 'multi') {\n testValues = [\n ...testValues,\n ...[true, false].flatMap(displaySelectedValues =>\n [\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type: 'multi', readonly: true },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type: 'multi', disabled: true },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type: 'multi', helpText: 'Hello joker' },\n { label: 'label', identifier: 'identifier', value: cloneDeep(items), type: 'multi', tooltip: 'Batman is a DC Comics license' },\n ].map(args => ({ ...args, displaySelectedValues })),\n ),\n ];\n }\n test.each(testValues)('Should render with args %s:', async args => {\n const { root } = await getPage(args);\n expect(root).toMatchSnapshot();\n });\n\n test.each(['', ' ', undefined])('Should not render with invalid identifier property: %s', async identifier => {\n expect.assertions(1);\n try {\n await getPage({ identifier, type, value: cloneDeep(items) });\n } catch (err) {\n expect(err.message).toMatch('<mg-input> prop \"identifier\" is required.');\n }\n });\n\n test.each(['', ' ', undefined])('Should not render with invalid label property: %s', async label => {\n expect.assertions(1);\n try {\n await getPage({ identifier: 'identifier', type, label, value: cloneDeep(items) });\n } catch (err) {\n expect(err.message).toMatch('<mg-input> prop \"label\" is required.');\n }\n });\n\n test('Should not render when using labelOnTop and labelHide: %s', async () => {\n expect.assertions(1);\n try {\n await getPage({ identifier: 'identifier', type, label: 'label', value: cloneDeep(items), labelOnTop: true, labelHide: true });\n } catch (err) {\n expect(err.message).toMatch('<mg-input> prop \"labelOnTop\" must not be paired with the prop \"labelHide\".');\n }\n });\n\n test.each([\n { identifier: 'identifier', type, label: 'label', value: undefined },\n { identifier: 'identifier', type, label: 'label', value: ['batman', 'joker', 'bane'] },\n ])('Should not render with invalid value property: %s', async args => {\n expect.assertions(1);\n try {\n await getPage(args);\n } catch (err) {\n expect(err.message).toMatch('<mg-input-checkbox> prop \"value\" is required and all values must be the same type, CheckboxItem.');\n }\n });\n\n test.each([true, false])('Should trigger events, case validity check %s', async validity => {\n const value = items.map((item, index) => ({ ...item, value: false, id: index, required: item.required, disabled: item.disabled, hero: 'batman' }));\n value[0].value = !validity;\n const page = await getPage({ label: 'label', type, identifier: 'identifier', helpText: 'My help text', value, required: true });\n const element = page.doc.querySelector('mg-input-checkbox');\n const allInputs = element.shadowRoot.querySelectorAll('input');\n const index = validity ? 2 : 0;\n const input = allInputs[index];\n\n //mock validity\n allInputs.forEach(input => {\n input.checkValidity = jest.fn(() => validity);\n Object.defineProperty(input, 'validity', {\n get: jest.fn(() => ({\n valueMissing: !validity,\n })),\n });\n });\n\n jest.spyOn(page.rootInstance.valueChange, 'emit');\n const inputValidSpy = jest.spyOn(page.rootInstance.inputValid, 'emit');\n\n input.dispatchEvent(new CustomEvent('focus', { bubbles: true }));\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot(); //Snapshot on focus\n\n input.checked = validity;\n input.dispatchEvent(new CustomEvent('input', { bubbles: true }));\n\n const emittedValue = value;\n emittedValue[index].value = input.checked;\n await page.waitForChanges();\n expect(page.rootInstance.valueChange.emit).toHaveBeenCalledWith(emittedValue);\n\n input.dispatchEvent(new CustomEvent('blur', { bubbles: true }));\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot(); //Snapshot on blur\n expect(inputValidSpy).toHaveBeenCalledTimes(1);\n });\n\n describe.each(['readonly', 'disabled'])('validity, case next state is %s', nextState => {\n test.each([\n { validity: true, valueMissing: false },\n { validity: false, valueMissing: true },\n { validity: false, valueMissing: false },\n ])('validity (%s), valueMissing (%s)', async ({ validity, valueMissing }) => {\n const value = items.map((item, index) => ({ ...item, value: !valueMissing && index === 1 }));\n const args = { label: 'label', identifier: 'identifier', type, value, helpText: 'My help text', required: true };\n const page = await getPage(args);\n const element = page.doc.querySelector('mg-input-checkbox');\n const allInputs = element.shadowRoot.querySelectorAll('input');\n const input = allInputs[0];\n\n //mock validity\n allInputs.forEach(input => {\n input.checkValidity = jest.fn(() => validity);\n Object.defineProperty(input, 'validity', {\n get: jest.fn(() => ({\n valueMissing,\n })),\n });\n });\n\n input.dispatchEvent(new CustomEvent('blur', { bubbles: true }));\n await page.waitForChanges();\n\n if (validity) {\n expect(page.rootInstance.errorMessage).toBeUndefined();\n } else if (valueMissing) {\n expect(page.rootInstance.errorMessage).toEqual(messages.errors.required);\n }\n expect(page.rootInstance.valid).toEqual(validity);\n expect(page.rootInstance.invalid).toEqual(!validity);\n\n if (valueMissing) {\n expect(page.root).toMatchSnapshot(); //Snapshot with readonly/disabled FALSE\n element[nextState] = true;\n await page.waitForChanges();\n expect(page.root).toMatchSnapshot(); //Snapshot with readonly/disabled TRUE\n }\n });\n });\n test.each([\n {\n valid: true,\n errorMessage: 'Override error',\n },\n {\n valid: false,\n errorMessage: 'Override error',\n },\n ])(\"should display override error with setError component's public method\", async params => {\n const page = await getPage({ label: 'label', identifier: 'identifier', type, value: cloneDeep(items), helpText: 'My help text', required: true });\n\n expect(page.root).toMatchSnapshot();\n\n const element = page.doc.querySelector('mg-input-checkbox');\n const inputs = Array.from(element.shadowRoot.querySelectorAll('input'));\n\n //mock validity\n inputs.forEach(input => {\n Object.defineProperty(input, 'validity', {\n get: () => ({}),\n });\n });\n\n await element.setError(params.valid, params.errorMessage);\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n test.each([\n {\n valid: '',\n errorMessage: 'Override error',\n error: '<mg-input-checkbox> method \"setError()\" param \"valid\" must be a boolean',\n },\n {\n valid: undefined,\n errorMessage: 'Override error',\n error: '<mg-input-checkbox> method \"setError()\" param \"valid\" must be a boolean',\n },\n {\n valid: true,\n errorMessage: ' ',\n error: '<mg-input-checkbox> method \"setError()\" param \"errorMessage\" must be a string',\n },\n {\n valid: true,\n errorMessage: true,\n error: '<mg-input-checkbox> method \"setError()\" param \"errorMessage\" must be a string',\n },\n ])(\"shloud throw error with setError component's public method invalid params\", async params => {\n expect.assertions(1);\n try {\n const page = await getPage({ label: 'label', identifier: 'identifier', type, value: cloneDeep(items), helpText: 'My help text', required: true });\n const element = page.doc.querySelector('mg-input-checkbox');\n\n await element.setError(params.valid as unknown as boolean, params.errorMessage as unknown as string);\n await page.waitForChanges();\n } catch (err) {\n expect(err.message).toMatch(params.error);\n }\n });\n\n test(\"display error with displayError component's public method\", async () => {\n const value = cloneDeep(items);\n value[0].value = false;\n const page = await getPage({ label: 'label', identifier: 'identifier', type, value, helpText: 'My help text', required: true });\n\n expect(page.root).toMatchSnapshot();\n\n const element = page.doc.querySelector('mg-input-checkbox');\n const allInputs = element.shadowRoot.querySelectorAll('input');\n\n //mock validity\n allInputs.forEach(input => {\n input.checkValidity = jest.fn(() => false);\n Object.defineProperty(input, 'validity', {\n get: jest.fn(() => ({\n valueMissing: true,\n })),\n });\n });\n\n await element.displayError();\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n test.each(['fr', 'xx'])('Should render component error with locale: %s', async lang => {\n const value = cloneDeep(items);\n value[0].value = false;\n const page = await getPage({ label: 'label', identifier: 'identifier', type, value, helpText: 'My help text', required: true, lang });\n const element = page.doc.querySelector('mg-input-checkbox');\n const allInputs = element.shadowRoot.querySelectorAll('input');\n\n //mock validity\n allInputs.forEach(input => {\n input.checkValidity = jest.fn(() => false);\n Object.defineProperty(input, 'validity', {\n get: jest.fn(() => ({\n valueMissing: true,\n })),\n });\n });\n\n await element.displayError();\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n test.each([[[true, false].flatMap(value => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map(item => ({ title: item.toString(), value })))]])(\n 'Should render component with locale \"fr\"',\n async value => {\n const page = await getPage({ label: 'label', identifier: 'identifier', value, lang: 'fr' });\n\n expect(page.root).toMatchSnapshot();\n },\n );\n\n test('Should remove error on input when required change dynamically', async () => {\n const page = await getPage({\n label: 'label',\n identifier: 'identifier',\n value: [\n { title: 'batman', value: false },\n { title: 'robin', value: false },\n ],\n required: true,\n type,\n });\n const element = page.doc.querySelector('mg-input-checkbox');\n const allInputs = element.shadowRoot.querySelectorAll('input');\n\n //mock validity\n allInputs[0].checkValidity = jest\n .fn()\n .mockReturnValueOnce(false) //1\n .mockReturnValueOnce(false) //1\n .mockReturnValueOnce(true) //2\n .mockReturnValueOnce(true) //2\n .mockReturnValueOnce(false) //3\n .mockReturnValueOnce(false); //3\n allInputs[1].checkValidity = jest.fn().mockReturnValueOnce(true).mockReturnValueOnce(true); //2\n Object.defineProperty(allInputs[0], 'validity', {\n get: jest\n .fn()\n .mockReturnValueOnce({\n valueMissing: true, //1\n })\n .mockReturnValueOnce({\n valueMissing: false, //2\n })\n .mockReturnValueOnce({\n valueMissing: true, //3\n }),\n });\n\n await element.displayError();\n await page.waitForChanges();\n\n expect(page.rootInstance.hasDisplayedError).toEqual(true);\n expect(page.rootInstance.errorMessage).toEqual(messages.errors.required);\n\n element.required = false;\n await page.waitForChanges();\n\n // Error message should disapear and change the hasDisplayedError status\n expect(page.rootInstance.hasDisplayedError).toEqual(false);\n expect(page.rootInstance.errorMessage).toBeUndefined();\n\n element.required = true;\n await page.waitForChanges();\n\n // If back on required the message is still not displayed\n expect(page.rootInstance.hasDisplayedError).toEqual(false);\n expect(page.rootInstance.errorMessage).toBeUndefined();\n });\n\n test('should enable \"displaySearchInput\" when value list is greater than 10', async () => {\n const value = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map(item => ({\n title: `item ${item}`,\n value: false,\n }));\n const { root } = await getPage({ label: 'label', identifier: 'identifier', value, type });\n expect(root).toMatchSnapshot();\n });\n });\n\n describe('navigation', () => {\n test('should NOT manage keyboard \"tab\" navigation on \"checkbox\" type', async () => {\n const page = await getPage({ label: 'label', identifier: 'identifier', value: cloneDeep(items), type: 'checkbox', tooltip: 'Tooltip message' });\n const element = page.doc.querySelector('mg-input-checkbox');\n const allInputs = Array.from(element.shadowRoot.querySelectorAll('input'));\n\n allInputs.forEach(input => input.dispatchEvent(new KeyboardEvent('keydown', { key: 'Tab' })));\n jest.runOnlyPendingTimers();\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n\n allInputs[0].dispatchEvent(new KeyboardEvent('keydown', { key: 'Tab' }));\n jest.runOnlyPendingTimers();\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n });\n\n test.each(['next', 'prev'])('should manage keyboard \"tab\" navigation on \"multi\" type', async direction => {\n const page = await getPage({\n label: 'label',\n identifier: 'identifier',\n value: [1, 2, 3, 4, 5, 6, 7, 8, 9].map(item => ({\n title: `item ${item}`,\n value: false,\n })),\n type: 'multi',\n tooltip: 'Tooltip message',\n });\n const element = page.doc.querySelector('mg-input-checkbox');\n const allInputs = Array.from(element.shadowRoot.querySelectorAll('input'));\n const button = element.shadowRoot.querySelector('mg-button');\n const popover = element.shadowRoot.querySelector('mg-popover');\n\n button.dispatchEvent(new CustomEvent('click', { bubbles: true }));\n jest.runOnlyPendingTimers();\n await page.waitForChanges();\n\n expect(popover.display).toEqual(true);\n\n if (direction === 'next') for await (const input of allInputs) input.dispatchEvent(new KeyboardEvent('keydown', { key: 'Tab' }));\n else if (direction === 'prev') allInputs[0].dispatchEvent(new KeyboardEvent('keydown', { key: 'Tab', shiftKey: true }));\n jest.runOnlyPendingTimers();\n await page.waitForChanges();\n\n expect(popover.display).toEqual(false);\n });\n\n test('should manage keyboard \"shift+tab\" navigation on \"multi\" type', async () => {\n const page = await getPage({\n label: 'label',\n identifier: 'identifier',\n value: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map(item => ({\n title: `item ${item}`,\n value: false,\n })),\n type: 'multi',\n tooltip: 'Tooltip message',\n });\n const element = page.doc.querySelector('mg-input-checkbox');\n const searchInput = element.shadowRoot.querySelector('mg-input-text').shadowRoot.querySelector('input');\n const button = element.shadowRoot.querySelector('mg-button');\n const popover = element.shadowRoot.querySelector('mg-popover');\n\n button.dispatchEvent(new CustomEvent('click', { bubbles: true }));\n jest.runOnlyPendingTimers();\n await page.waitForChanges();\n\n expect(popover.display).toEqual(true);\n\n searchInput.dispatchEvent(new KeyboardEvent('keydown', { key: 'Tab', shiftKey: true }));\n jest.runOnlyPendingTimers();\n await page.waitForChanges();\n\n expect(popover.display).toEqual(false);\n });\n });\n\n test.each([' ', 'batman'])('Should not render with invalid type property: %s', async type => {\n expect.assertions(1);\n try {\n await getPage({ identifier: 'identifier', type, label: 'label', value: cloneDeep(items) });\n } catch (err) {\n expect(err.message).toMatch('<mg-input-checkbox> prop \"type\" must be a CheckboxType.');\n }\n });\n\n describe('multi search', () => {\n test('should enable return search result and update pagination', async () => {\n const value = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21].map(item => ({\n title: `item ${item}`,\n value: false,\n }));\n const getResultList = (mgInputCheckbox: HTMLMgInputCheckboxElement) => Array.from(mgInputCheckbox.shadowRoot.querySelectorAll('li'));\n const page = await getPage({ label: 'label', identifier: 'identifier', value });\n expect(page.root).toMatchSnapshot();\n\n const mgInputCheckbox = page.doc.querySelector('mg-input-checkbox');\n const mgPopover = mgInputCheckbox.shadowRoot.querySelector('mg-popover');\n const searchInput = mgInputCheckbox.shadowRoot.querySelector('mg-input-text');\n\n mgPopover.display = true;\n await page.waitForChanges();\n jest.runOnlyPendingTimers();\n\n let resultList = getResultList(mgInputCheckbox);\n\n expect(resultList.length).toEqual(10);\n\n searchInput.dispatchEvent(new CustomEvent('value-change', { detail: '2' }));\n await page.waitForChanges();\n\n resultList = getResultList(mgInputCheckbox);\n expect(resultList.length).toEqual(4);\n expect(page.root).toMatchSnapshot();\n\n searchInput.dispatchEvent(new CustomEvent('value-change', { detail: '11' }));\n await page.waitForChanges();\n\n resultList = getResultList(mgInputCheckbox);\n expect(resultList.length).toEqual(1);\n expect(page.root).toMatchSnapshot();\n\n searchInput.dispatchEvent(new CustomEvent('value-change', { detail: '111' }));\n await page.waitForChanges();\n\n resultList = getResultList(mgInputCheckbox);\n expect(resultList.length).toEqual(0);\n expect(page.root).toMatchSnapshot();\n\n mgPopover.display = false;\n await page.waitForChanges();\n jest.runOnlyPendingTimers();\n\n expect(searchInput.value).toEqual('');\n expect(page.root).toMatchSnapshot();\n });\n\n test('should search and update values', async () => {\n const value = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21].map(item => ({\n title: `item ${item}`,\n value: false,\n }));\n const page = await getPage({ label: 'label', identifier: 'identifier', value });\n expect(page.root).toMatchSnapshot();\n\n const mgInputCheckbox = page.doc.querySelector('mg-input-checkbox');\n const mgPopover = mgInputCheckbox.shadowRoot.querySelector('mg-popover');\n const searchInput = mgInputCheckbox.shadowRoot.querySelector('mg-input-text');\n\n mgPopover.display = true;\n await page.waitForChanges();\n jest.runOnlyPendingTimers();\n\n searchInput.dispatchEvent(new CustomEvent('value-change', { detail: '2' }));\n await page.waitForChanges();\n\n const input = mgInputCheckbox.shadowRoot.querySelector('input');\n input.checkValidity = () => true;\n input.checked = true;\n\n input.dispatchEvent(new CustomEvent('input', { bubbles: true }));\n await page.waitForChanges();\n\n expect(mgInputCheckbox.value.find(item => item.value)).toHaveProperty('title', 'item 2');\n expect(page.root).toMatchSnapshot();\n\n mgPopover.display = false;\n await page.waitForChanges();\n jest.runOnlyPendingTimers();\n\n expect(page.root).toMatchSnapshot();\n });\n\n test('should navigate across paginated list with mg-pagination', async () => {\n const value = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21].map(item => ({\n title: `item ${item}`,\n value: false,\n }));\n const getResultList = (mgInputCheckbox: HTMLMgInputCheckboxElement) => Array.from(mgInputCheckbox.shadowRoot.querySelectorAll('li'));\n const page = await getPage({ label: 'label', identifier: 'identifier', value });\n expect(page.root).toMatchSnapshot();\n\n const mgInputCheckbox = page.doc.querySelector('mg-input-checkbox');\n const mgPopover = mgInputCheckbox.shadowRoot.querySelector('mg-popover');\n const mgPagination = mgInputCheckbox.shadowRoot.querySelector('mg-pagination');\n const mgPaginationNext = mgPagination.shadowRoot.querySelector('mg-button:last-of-type');\n\n mgPopover.display = true;\n await page.waitForChanges();\n jest.runOnlyPendingTimers();\n\n let resultList = getResultList(mgInputCheckbox);\n\n expect(resultList.length).toEqual(10);\n\n mgPaginationNext.dispatchEvent(new MouseEvent('click', { bubbles: true }));\n await page.waitForChanges();\n\n resultList = getResultList(mgInputCheckbox);\n expect(resultList.length).toEqual(10);\n expect(page.root).toMatchSnapshot();\n\n mgPaginationNext.dispatchEvent(new MouseEvent('click', { bubbles: true }));\n await page.waitForChanges();\n\n resultList = getResultList(mgInputCheckbox);\n expect(resultList.length).toEqual(1);\n expect(page.root).toMatchSnapshot();\n });\n\n test('should update all values with mass actions', async () => {\n const value = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21].map(item => ({\n title: `item ${item}`,\n value: false,\n }));\n const getResultList = (mgInputCheckbox: HTMLMgInputCheckboxElement) => Array.from(mgInputCheckbox.shadowRoot.querySelectorAll('input'));\n const page = await getPage({ label: 'label', identifier: 'identifier', value });\n expect(page.root).toMatchSnapshot();\n\n const mgInputCheckbox = page.doc.querySelector('mg-input-checkbox');\n const mgPopover = mgInputCheckbox.shadowRoot.querySelector('mg-popover');\n\n mgPopover.display = true;\n await page.waitForChanges();\n jest.runOnlyPendingTimers();\n\n let resultList = getResultList(mgInputCheckbox);\n\n expect(resultList.filter(item => item.value === 'true').length).toEqual(0);\n expect(mgInputCheckbox.value.filter(item => item.value).length).toEqual(0);\n expect(page.root).toMatchSnapshot();\n\n const selectAllButton = mgInputCheckbox.shadowRoot.querySelector('mg-input-checkbox-paginated:last-of-type mg-button');\n selectAllButton.dispatchEvent(new MouseEvent('click', { bubbles: true }));\n await page.waitForChanges();\n\n resultList = getResultList(mgInputCheckbox);\n expect(resultList.filter(item => item.value === 'true').length).toEqual(10);\n expect(mgInputCheckbox.value.filter(item => item.value).length).toEqual(21);\n expect(page.root).toMatchSnapshot();\n\n const unselectAllButton = Array.from(\n mgInputCheckbox.shadowRoot.querySelectorAll('mg-input-checkbox-paginated .mg-c-input__input-checkbox-multi-section-header mg-button:last-of-type'),\n ).find(button => button.textContent === 'Unselect all');\n unselectAllButton.dispatchEvent(new MouseEvent('click', { bubbles: true }));\n await page.waitForChanges();\n\n resultList = getResultList(mgInputCheckbox);\n expect(resultList.filter(item => item.value === 'true').length).toEqual(0);\n expect(mgInputCheckbox.value.filter(item => item.value).length).toEqual(0);\n expect(page.root).toMatchSnapshot();\n });\n\n test('should toggle selected items section', async () => {\n const value = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21].map((item, index) => ({\n title: `item ${item}`,\n value: [5, 12, 13, 17].some(item => item === index),\n }));\n const page = await getPage({ label: 'label', identifier: 'identifier', value });\n\n const mgInputCheckbox = page.doc.querySelector('mg-input-checkbox');\n const mgPopover = mgInputCheckbox.shadowRoot.querySelector('mg-popover');\n\n mgPopover.display = true;\n await page.waitForChanges();\n jest.runOnlyPendingTimers();\n\n const sections = Array.from(mgInputCheckbox.shadowRoot.querySelectorAll('mg-input-checkbox-paginated'));\n\n expect(sections.length).toEqual(2);\n\n for (const [i, section] of sections.entries()) {\n const firstButton = section.querySelector('mg-button');\n const sectionContent = section.querySelector('.mg-c-input__input-checkbox-multi-section-content');\n expect(sectionContent).not.toHaveAttribute('hidden');\n\n firstButton.dispatchEvent(new MouseEvent('click', { bubbles: true }));\n await page.waitForChanges();\n\n if (i !== 0) {\n expect(sectionContent).not.toHaveAttribute('hidden');\n } else {\n expect(sectionContent).toHaveAttribute('hidden');\n }\n expect(page.root).toMatchSnapshot();\n }\n });\n\n test('should go to previous page when last item is checked', async () => {\n const value = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21].map(item => ({\n title: `item ${item}`,\n value: false,\n }));\n const page = await getPage({ label: 'label', identifier: 'identifier', value });\n const getResultList = (mgInputCheckbox: HTMLMgInputCheckboxElement) => Array.from(mgInputCheckbox.shadowRoot.querySelectorAll('input'));\n\n const mgInputCheckbox = page.doc.querySelector('mg-input-checkbox');\n const mgPopover = mgInputCheckbox.shadowRoot.querySelector('mg-popover');\n const mgPagination = mgInputCheckbox.shadowRoot.querySelector('mg-pagination:last-of-type');\n const mgPaginationNext = mgPagination.shadowRoot.querySelector('mg-button:last-of-type');\n\n mgPopover.display = true;\n await page.waitForChanges();\n jest.runOnlyPendingTimers();\n\n let resultList = getResultList(mgInputCheckbox);\n\n expect(resultList.length).toEqual(10);\n\n mgPaginationNext.dispatchEvent(new MouseEvent('click', { bubbles: true }));\n await page.waitForChanges();\n\n mgPaginationNext.dispatchEvent(new MouseEvent('click', { bubbles: true }));\n await page.waitForChanges();\n\n resultList = Array.from(mgInputCheckbox.shadowRoot.querySelectorAll('mg-input-checkbox-paginated:last-of-type input'));\n expect(resultList.length).toEqual(1);\n expect(page.root).toMatchSnapshot();\n\n const input = mgInputCheckbox.shadowRoot.querySelector('input');\n input.checkValidity = () => true;\n input.checked = true;\n\n input.dispatchEvent(new CustomEvent('input', { bubbles: true }));\n await page.waitForChanges();\n\n const firstSectionInputs = mgInputCheckbox.shadowRoot.querySelectorAll('mg-input-checkbox-paginated:first-of-type input');\n const lastSectionInputs = mgInputCheckbox.shadowRoot.querySelectorAll('mg-input-checkbox-paginated:last-of-type input');\n\n expect(firstSectionInputs.length).toEqual(1);\n expect(lastSectionInputs.length).toEqual(10);\n expect(page.root).toMatchSnapshot();\n });\n });\n});\n"]}
@@ -4,6 +4,7 @@ import { InputError } from "./mg-input-date.conf";
4
4
  import { ClassList, isValidString } from "../../../../utils/components.utils";
5
5
  import { localeDate, dateRegExp } from "../../../../utils/locale.utils";
6
6
  import { initLocales } from "../../../../locales";
7
+ import { Handler } from "../MgInput.conf";
7
8
  export class MgInputDate {
8
9
  constructor() {
9
10
  // hasDisplayedError (triggered by blur event)
@@ -22,7 +23,11 @@ export class MgInputDate {
22
23
  * Handle blur event
23
24
  */
24
25
  this.handleBlur = () => {
25
- this.displayError();
26
+ this.handlerInProgress = Handler.BLUR;
27
+ this.displayError().finally(() => {
28
+ // reset guard
29
+ this.handlerInProgress = undefined;
30
+ });
26
31
  };
27
32
  /**
28
33
  * Check if input is valid
@@ -162,10 +167,12 @@ export class MgInputDate {
162
167
  * @param newValue - valid new value
163
168
  */
164
169
  setValidity(newValue) {
170
+ const oldValidValue = this.valid;
165
171
  this.valid = newValue;
166
172
  this.invalid = !this.valid;
167
173
  // We need to send valid event even if it is the same value
168
- this.inputValid.emit(this.valid);
174
+ if (this.handlerInProgress === undefined || (this.handlerInProgress === Handler.BLUR && this.valid !== oldValidValue))
175
+ this.inputValid.emit(this.valid);
169
176
  }
170
177
  /*************
171
178
  * Lifecycle *
@@ -1 +1 @@
1
- {"version":3,"file":"mg-input-date.js","sourceRoot":"","sources":["../../../../../src/components/molecules/inputs/mg-input-date/mg-input-date.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Prop, State, Watch, Method } from '@stencil/core';\nimport { MgInput } from '../MgInput';\nimport { InputError } from './mg-input-date.conf';\nimport { ClassList, isValidString } from '../../../../utils/components.utils';\nimport { localeDate, dateRegExp } from '../../../../utils/locale.utils';\nimport { initLocales } from '../../../../locales';\n\n@Component({\n tag: 'mg-input-date',\n styleUrl: '../../../../../node_modules/@mgdis/styles/dist/components/mg-input-date.css',\n shadow: true,\n})\nexport class MgInputDate {\n /************\n * Internal *\n ************/\n\n // HTML selector\n private input: HTMLInputElement;\n\n // Locales\n private messages;\n private locale: string;\n\n // hasDisplayedError (triggered by blur event)\n private hasDisplayedError = false;\n\n /**************\n * Decorators *\n **************/\n\n /**\n * Get component DOM element\n */\n @Element() element: HTMLMgInputDateElement;\n\n /**\n * Component value\n */\n @Prop({ mutable: true, reflect: true }) value: string;\n @Watch('value')\n validateValue(newValue: MgInputDate['value']): void {\n // When the input is not fully completed or has been cleared, the value becomes an empty string.\n if (newValue === '') newValue = null;\n if (newValue !== undefined && newValue !== null && (typeof newValue !== 'string' || !dateRegExp.test(newValue))) {\n throw new Error(\"<mg-input-date> props 'value' doesn't match pattern: yyyy-mm-dd\");\n } else {\n this.valueChange.emit(newValue);\n }\n }\n\n /**\n * Identifier is used for the element ID (id is a reserved prop in Stencil.js)\n */\n @Prop() identifier!: string;\n\n /**\n * Input name\n * If not set the value equals the identifier\n */\n @Prop() name: string = this.identifier;\n\n /**\n * Input label\n */\n @Prop() label!: string;\n\n /**\n * Define if label is displayed on top\n */\n @Prop() labelOnTop: boolean;\n\n /**\n * Define if label is visible\n */\n @Prop() labelHide = false;\n\n /**\n * Define if input is required\n */\n @Prop() required = false;\n\n /**\n * Define if input is readonly\n */\n @Prop() readonly = false;\n\n /**\n * Define if input is disabled\n */\n @Prop() disabled = false;\n @Watch('required')\n @Watch('readonly')\n @Watch('disabled')\n handleValidityChange(newValue: boolean, _oldValue: boolean, prop: string): void {\n if (this.input !== undefined) {\n this.input[prop] = newValue;\n this.checkValidity();\n if (this.hasDisplayedError) {\n this.setErrorMessage();\n this.hasDisplayedError = false;\n }\n }\n }\n\n /**\n * Add a tooltip message next to the input\n */\n @Prop() tooltip: string;\n\n /**\n * Add a help text under the input, usually expected data format and example\n */\n @Prop() helpText: string;\n\n /**\n * Define input valid state\n */\n @Prop({ mutable: true }) valid: boolean;\n\n /**\n * Define input invalid state\n */\n @Prop({ mutable: true }) invalid: boolean;\n\n /**\n * Define input minimum date\n * format: yyyy-mm-dd\n */\n @Prop() min: string;\n\n /**\n * Define input maximum date\n * format: yyyy-mm-dd\n */\n @Prop() max: string;\n @Watch('min')\n @Watch('max')\n validateMinMax(newValue: string): void {\n if (newValue?.length === 0 || (newValue?.length > 0 && !(typeof newValue === 'string' && dateRegExp.test(newValue)))) {\n throw new Error(\"<mg-input-date> props 'min/max' doesn't match pattern: yyyy-mm-dd\");\n }\n }\n\n /**\n * Component classes\n */\n @State() classCollection: ClassList = new ClassList(['mg-c-input--date']);\n\n /**\n * Error message to display\n */\n @State() errorMessage: string;\n\n /**\n * Emited event when value change\n */\n @Event({ eventName: 'value-change' }) valueChange: EventEmitter<string>;\n\n /**\n * Emited event when checking validity\n */\n @Event({ eventName: 'input-valid' }) inputValid: EventEmitter<boolean>;\n\n /**\n * Display input error if it exists.\n */\n @Method()\n async displayError(): Promise<void> {\n this.checkValidity();\n this.setErrorMessage();\n this.hasDisplayedError = this.invalid;\n }\n\n /**\n * Set an error and display a custom error message.\n * This method can be used to set the component's error state from its context by passing a boolean value to the `valid` parameter.\n * It must be paired with an error message to display for the given context.\n * When used to set validity to `false`, you should use this method again to reset the validity to `true`.\n * @param valid - value indicating the validity\n * @param errorMessage - the error message to display\n */\n @Method()\n async setError(valid: MgInputDate['valid'], errorMessage: string): Promise<void> {\n if (typeof valid !== 'boolean') {\n throw new Error('<mg-input-date> method \"setError()\" param \"valid\" must be a boolean');\n } else if (!isValidString(errorMessage)) {\n throw new Error('<mg-input-date> method \"setError()\" param \"errorMessage\" must be a string');\n } else {\n this.setValidity(valid);\n this.setErrorMessage(valid ? undefined : errorMessage);\n this.hasDisplayedError = this.invalid;\n }\n }\n\n /**\n * Method to set validity values\n * @param newValue - valid new value\n */\n private setValidity(newValue: MgInputDate['valid']) {\n this.valid = newValue;\n this.invalid = !this.valid;\n // We need to send valid event even if it is the same value\n this.inputValid.emit(this.valid);\n }\n\n /**\n * Handle input event\n */\n private handleInput = (): void => {\n this.checkValidity();\n if (this.hasDisplayedError) {\n this.setErrorMessage();\n }\n this.value = this.input.value;\n };\n\n /**\n * Handle blur event\n */\n private handleBlur = (): void => {\n this.displayError();\n };\n\n /**\n * Check if input is valid\n */\n private checkValidity = (): void => {\n this.setValidity(this.readonly || this.disabled || (this.input?.checkValidity !== undefined ? this.input.checkValidity() : true));\n };\n\n /**\n * get input error code\n * @returns error code\n */\n private getInputError = (): null | InputError => {\n let inputError = null;\n\n // required\n if (this.input.validity.valueMissing) {\n inputError = InputError.REQUIRED;\n }\n // min & max\n else if ((this.input.validity.rangeUnderflow || this.input.validity.rangeOverflow) && this.min?.length > 0 && this.max?.length > 0) {\n inputError = InputError.MINMAX;\n }\n // min\n else if (this.input.validity.rangeUnderflow) {\n inputError = InputError.MIN;\n }\n //max\n else if (this.input.validity.rangeOverflow) {\n inputError = InputError.MAX;\n }\n\n return inputError;\n };\n\n /**\n * Check input errors\n * @param errorMessage - errorMessage override\n */\n private setErrorMessage = (errorMessage?: string): void => {\n // Set error message\n this.errorMessage = undefined;\n if (!this.valid) {\n const inputError = this.getInputError();\n if (errorMessage !== undefined) {\n this.errorMessage = errorMessage;\n }\n // required\n else if (inputError === InputError.REQUIRED) {\n this.errorMessage = this.messages.errors[inputError];\n }\n // min, max & minMax\n else if ([InputError.MIN, InputError.MAX, InputError.MINMAX].includes(inputError)) {\n this.errorMessage = this.messages.errors.date[inputError].replace('{min}', localeDate(this.min, this.locale)).replace('{max}', localeDate(this.max, this.locale));\n }\n // wrong date format\n // element.validity.badInput is default error message\n else {\n this.errorMessage = this.messages.errors.date.badInput.replace('{min}', this.min?.length > 0 ? localeDate(this.min, this.locale) : localeDate('1900-01-01', this.locale));\n }\n }\n };\n\n /*************\n * Lifecycle *\n *************/\n\n /**\n * Check if component props are well configured on init\n * @returns timeout\n */\n componentWillLoad(): ReturnType<typeof setTimeout> {\n // Get locales\n const locales = initLocales(this.element);\n this.locale = locales.locale;\n this.messages = locales.messages;\n // Validate\n this.validateValue(this.value);\n this.validateMinMax(this.min);\n this.validateMinMax(this.max);\n // Check validity when component is ready\n // return a promise to process action only in the FIRST render().\n // https://stenciljs.com/docs/component-lifecycle#componentwillload\n return setTimeout(() => {\n this.checkValidity();\n }, 0);\n }\n\n /**\n * Render\n * @returns HTML Element\n */\n render(): HTMLElement {\n return (\n <MgInput\n identifier={this.identifier}\n classCollection={this.classCollection}\n ariaDescribedbyIDs={[]}\n label={this.label}\n labelOnTop={this.labelOnTop}\n labelHide={this.labelHide}\n required={this.required}\n readonly={this.readonly}\n mgWidth={undefined}\n disabled={this.disabled}\n value={this.value}\n readonlyValue={localeDate(this.value, this.locale)}\n tooltip={this.tooltip}\n helpText={this.helpText}\n errorMessage={this.errorMessage}\n isFieldset={false}\n >\n <input\n type=\"date\"\n class=\"mg-c-input__box\"\n min={this.min}\n max={this.max}\n value={this.value}\n id={this.identifier}\n name={this.name}\n disabled={this.disabled}\n required={this.required}\n aria-invalid={(this.invalid === true).toString()}\n onInput={this.handleInput}\n onBlur={this.handleBlur}\n ref={(el: HTMLInputElement) => {\n if (el !== null) this.input = el;\n }}\n />\n </MgInput>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"mg-input-date.js","sourceRoot":"","sources":["../../../../../src/components/molecules/inputs/mg-input-date/mg-input-date.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Prop, State, Watch, Method } from '@stencil/core';\nimport { MgInput } from '../MgInput';\nimport { InputError } from './mg-input-date.conf';\nimport { ClassList, isValidString } from '../../../../utils/components.utils';\nimport { localeDate, dateRegExp } from '../../../../utils/locale.utils';\nimport { initLocales } from '../../../../locales';\nimport { Handler } from '../MgInput.conf';\n\n@Component({\n tag: 'mg-input-date',\n styleUrl: '../../../../../node_modules/@mgdis/styles/dist/components/mg-input-date.css',\n shadow: true,\n})\nexport class MgInputDate {\n /************\n * Internal *\n ************/\n\n // HTML selector\n private input: HTMLInputElement;\n\n // Locales\n private messages;\n private locale: string;\n\n // hasDisplayedError (triggered by blur event)\n private hasDisplayedError = false;\n private handlerInProgress: Handler;\n\n /**************\n * Decorators *\n **************/\n\n /**\n * Get component DOM element\n */\n @Element() element: HTMLMgInputDateElement;\n\n /**\n * Component value\n */\n @Prop({ mutable: true, reflect: true }) value: string;\n @Watch('value')\n validateValue(newValue: MgInputDate['value']): void {\n // When the input is not fully completed or has been cleared, the value becomes an empty string.\n if (newValue === '') newValue = null;\n if (newValue !== undefined && newValue !== null && (typeof newValue !== 'string' || !dateRegExp.test(newValue))) {\n throw new Error(\"<mg-input-date> props 'value' doesn't match pattern: yyyy-mm-dd\");\n } else {\n this.valueChange.emit(newValue);\n }\n }\n\n /**\n * Identifier is used for the element ID (id is a reserved prop in Stencil.js)\n */\n @Prop() identifier!: string;\n\n /**\n * Input name\n * If not set the value equals the identifier\n */\n @Prop() name: string = this.identifier;\n\n /**\n * Input label\n */\n @Prop() label!: string;\n\n /**\n * Define if label is displayed on top\n */\n @Prop() labelOnTop: boolean;\n\n /**\n * Define if label is visible\n */\n @Prop() labelHide = false;\n\n /**\n * Define if input is required\n */\n @Prop() required = false;\n\n /**\n * Define if input is readonly\n */\n @Prop() readonly = false;\n\n /**\n * Define if input is disabled\n */\n @Prop() disabled = false;\n @Watch('required')\n @Watch('readonly')\n @Watch('disabled')\n handleValidityChange(newValue: boolean, _oldValue: boolean, prop: string): void {\n if (this.input !== undefined) {\n this.input[prop] = newValue;\n this.checkValidity();\n if (this.hasDisplayedError) {\n this.setErrorMessage();\n this.hasDisplayedError = false;\n }\n }\n }\n\n /**\n * Add a tooltip message next to the input\n */\n @Prop() tooltip: string;\n\n /**\n * Add a help text under the input, usually expected data format and example\n */\n @Prop() helpText: string;\n\n /**\n * Define input valid state\n */\n @Prop({ mutable: true }) valid: boolean;\n\n /**\n * Define input invalid state\n */\n @Prop({ mutable: true }) invalid: boolean;\n\n /**\n * Define input minimum date\n * format: yyyy-mm-dd\n */\n @Prop() min: string;\n\n /**\n * Define input maximum date\n * format: yyyy-mm-dd\n */\n @Prop() max: string;\n @Watch('min')\n @Watch('max')\n validateMinMax(newValue: string): void {\n if (newValue?.length === 0 || (newValue?.length > 0 && !(typeof newValue === 'string' && dateRegExp.test(newValue)))) {\n throw new Error(\"<mg-input-date> props 'min/max' doesn't match pattern: yyyy-mm-dd\");\n }\n }\n\n /**\n * Component classes\n */\n @State() classCollection: ClassList = new ClassList(['mg-c-input--date']);\n\n /**\n * Error message to display\n */\n @State() errorMessage: string;\n\n /**\n * Emited event when value change\n */\n @Event({ eventName: 'value-change' }) valueChange: EventEmitter<string>;\n\n /**\n * Emited event when checking validity\n */\n @Event({ eventName: 'input-valid' }) inputValid: EventEmitter<boolean>;\n\n /**\n * Display input error if it exists.\n */\n @Method()\n async displayError(): Promise<void> {\n this.checkValidity();\n this.setErrorMessage();\n this.hasDisplayedError = this.invalid;\n }\n\n /**\n * Set an error and display a custom error message.\n * This method can be used to set the component's error state from its context by passing a boolean value to the `valid` parameter.\n * It must be paired with an error message to display for the given context.\n * When used to set validity to `false`, you should use this method again to reset the validity to `true`.\n * @param valid - value indicating the validity\n * @param errorMessage - the error message to display\n */\n @Method()\n async setError(valid: MgInputDate['valid'], errorMessage: string): Promise<void> {\n if (typeof valid !== 'boolean') {\n throw new Error('<mg-input-date> method \"setError()\" param \"valid\" must be a boolean');\n } else if (!isValidString(errorMessage)) {\n throw new Error('<mg-input-date> method \"setError()\" param \"errorMessage\" must be a string');\n } else {\n this.setValidity(valid);\n this.setErrorMessage(valid ? undefined : errorMessage);\n this.hasDisplayedError = this.invalid;\n }\n }\n\n /**\n * Method to set validity values\n * @param newValue - valid new value\n */\n private setValidity(newValue: MgInputDate['valid']) {\n const oldValidValue = this.valid;\n this.valid = newValue;\n this.invalid = !this.valid;\n // We need to send valid event even if it is the same value\n if (this.handlerInProgress === undefined || (this.handlerInProgress === Handler.BLUR && this.valid !== oldValidValue)) this.inputValid.emit(this.valid);\n }\n\n /**\n * Handle input event\n */\n private handleInput = (): void => {\n this.checkValidity();\n if (this.hasDisplayedError) {\n this.setErrorMessage();\n }\n this.value = this.input.value;\n };\n\n /**\n * Handle blur event\n */\n private handleBlur = (): void => {\n this.handlerInProgress = Handler.BLUR;\n this.displayError().finally(() => {\n // reset guard\n this.handlerInProgress = undefined;\n });\n };\n\n /**\n * Check if input is valid\n */\n private checkValidity = (): void => {\n this.setValidity(this.readonly || this.disabled || (this.input?.checkValidity !== undefined ? this.input.checkValidity() : true));\n };\n\n /**\n * get input error code\n * @returns error code\n */\n private getInputError = (): null | InputError => {\n let inputError = null;\n\n // required\n if (this.input.validity.valueMissing) {\n inputError = InputError.REQUIRED;\n }\n // min & max\n else if ((this.input.validity.rangeUnderflow || this.input.validity.rangeOverflow) && this.min?.length > 0 && this.max?.length > 0) {\n inputError = InputError.MINMAX;\n }\n // min\n else if (this.input.validity.rangeUnderflow) {\n inputError = InputError.MIN;\n }\n //max\n else if (this.input.validity.rangeOverflow) {\n inputError = InputError.MAX;\n }\n\n return inputError;\n };\n\n /**\n * Check input errors\n * @param errorMessage - errorMessage override\n */\n private setErrorMessage = (errorMessage?: string): void => {\n // Set error message\n this.errorMessage = undefined;\n if (!this.valid) {\n const inputError = this.getInputError();\n if (errorMessage !== undefined) {\n this.errorMessage = errorMessage;\n }\n // required\n else if (inputError === InputError.REQUIRED) {\n this.errorMessage = this.messages.errors[inputError];\n }\n // min, max & minMax\n else if ([InputError.MIN, InputError.MAX, InputError.MINMAX].includes(inputError)) {\n this.errorMessage = this.messages.errors.date[inputError].replace('{min}', localeDate(this.min, this.locale)).replace('{max}', localeDate(this.max, this.locale));\n }\n // wrong date format\n // element.validity.badInput is default error message\n else {\n this.errorMessage = this.messages.errors.date.badInput.replace('{min}', this.min?.length > 0 ? localeDate(this.min, this.locale) : localeDate('1900-01-01', this.locale));\n }\n }\n };\n\n /*************\n * Lifecycle *\n *************/\n\n /**\n * Check if component props are well configured on init\n * @returns timeout\n */\n componentWillLoad(): ReturnType<typeof setTimeout> {\n // Get locales\n const locales = initLocales(this.element);\n this.locale = locales.locale;\n this.messages = locales.messages;\n // Validate\n this.validateValue(this.value);\n this.validateMinMax(this.min);\n this.validateMinMax(this.max);\n // Check validity when component is ready\n // return a promise to process action only in the FIRST render().\n // https://stenciljs.com/docs/component-lifecycle#componentwillload\n return setTimeout(() => {\n this.checkValidity();\n }, 0);\n }\n\n /**\n * Render\n * @returns HTML Element\n */\n render(): HTMLElement {\n return (\n <MgInput\n identifier={this.identifier}\n classCollection={this.classCollection}\n ariaDescribedbyIDs={[]}\n label={this.label}\n labelOnTop={this.labelOnTop}\n labelHide={this.labelHide}\n required={this.required}\n readonly={this.readonly}\n mgWidth={undefined}\n disabled={this.disabled}\n value={this.value}\n readonlyValue={localeDate(this.value, this.locale)}\n tooltip={this.tooltip}\n helpText={this.helpText}\n errorMessage={this.errorMessage}\n isFieldset={false}\n >\n <input\n type=\"date\"\n class=\"mg-c-input__box\"\n min={this.min}\n max={this.max}\n value={this.value}\n id={this.identifier}\n name={this.name}\n disabled={this.disabled}\n required={this.required}\n aria-invalid={(this.invalid === true).toString()}\n onInput={this.handleInput}\n onBlur={this.handleBlur}\n ref={(el: HTMLInputElement) => {\n if (el !== null) this.input = el;\n }}\n />\n </MgInput>\n );\n }\n}\n"]}
@@ -115,6 +115,7 @@ describe('mg-input-date', () => {
115
115
  })),
116
116
  });
117
117
  jest.spyOn(page.rootInstance.valueChange, 'emit');
118
+ const inputValidSpy = jest.spyOn(page.rootInstance.inputValid, 'emit');
118
119
  input.dispatchEvent(new CustomEvent('focus', { bubbles: true }));
119
120
  await page.waitForChanges();
120
121
  expect(page.root).toMatchSnapshot(); //Snapshot on focus
@@ -122,6 +123,9 @@ describe('mg-input-date', () => {
122
123
  input.dispatchEvent(new CustomEvent('input', { bubbles: true }));
123
124
  await page.waitForChanges();
124
125
  expect(page.rootInstance.valueChange.emit).toHaveBeenCalledWith(inputValue);
126
+ input.dispatchEvent(new CustomEvent('blur', { bubbles: true }));
127
+ await page.waitForChanges();
128
+ expect(inputValidSpy).toHaveBeenCalledTimes(1);
125
129
  });
126
130
  describe.each(['readonly', 'disabled'])('validity, case next state is %s', nextState => {
127
131
  test.each([