@statistikzh/leu 0.28.1 → 0.28.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Accordion-CwkI7sfx.js → Accordion-CaDTUDJG.js} +1 -1
- package/dist/Accordion.js +2 -2
- package/dist/{Button-D1aYnunQ.js → Button-BF3_6xgs.js} +3 -3
- package/dist/Button.js +4 -4
- package/dist/{ButtonGroup-CqThYjzX.js → ButtonGroup-grJiWGHI.js} +2 -2
- package/dist/ButtonGroup.js +5 -5
- package/dist/{ChartWrapper-BjVT4x-H.js → ChartWrapper-CeolXijF.js} +2 -2
- package/dist/ChartWrapper.js +3 -3
- package/dist/{Checkbox-HxYqp2w4.js → Checkbox-DGUZ1XtB.js} +2 -2
- package/dist/Checkbox.js +3 -3
- package/dist/{CheckboxGroup-DYws2rwt.js → CheckboxGroup-CGdyk_RP.js} +2 -2
- package/dist/CheckboxGroup.js +4 -4
- package/dist/{Chip-gKxD6IaZ.js → Chip-BpKH3_Nk.js} +1 -1
- package/dist/Chip.js +2 -2
- package/dist/{ChipGroup-ZvBzX_wd.js → ChipGroup-dSAMpfy1.js} +1 -1
- package/dist/ChipGroup.js +3 -3
- package/dist/ChipLink.js +2 -2
- package/dist/ChipRemovable.js +3 -3
- package/dist/ChipSelectable.js +2 -2
- package/dist/{Dialog-BYpzTprV.js → Dialog-CC674l80.js} +2 -2
- package/dist/Dialog.js +3 -3
- package/dist/{Dropdown-C4CgE4E-.js → Dropdown-B9YTM5N_.js} +5 -5
- package/dist/Dropdown.d.ts +2 -2
- package/dist/Dropdown.js +8 -8
- package/dist/{FileInput-nsnSQCaU.js → FileInput-D4kyWFkL.js} +4 -4
- package/dist/FileInput.js +6 -6
- package/dist/{Icon-D8HTPEFH.js → Icon-DOcb_NlX.js} +1 -1
- package/dist/Icon.js +2 -2
- package/dist/{Input-OrILqlax.js → Input-6Xu1N2sA.js} +2 -2
- package/dist/Input.js +3 -3
- package/dist/{LeuElement-C_lcHzQI.js → LeuElement-C3HedxlQ.js} +1 -1
- package/dist/{Menu-CFLCnI34.js → Menu-CJtyuUvP.js} +2 -2
- package/dist/{Menu-Z2b7dsB5.d.ts → Menu-txbYINTW.d.ts} +1 -1
- package/dist/Menu.d.ts +1 -1
- package/dist/Menu.js +4 -4
- package/dist/{MenuItem-LY4TRIho.d.ts → MenuItem-9TTOrL0Z.d.ts} +1 -1
- package/dist/{MenuItem-ICjLCGim.js → MenuItem-ClSE3auh.js} +2 -2
- package/dist/MenuItem.d.ts +1 -1
- package/dist/MenuItem.js +3 -3
- package/dist/{Message-Dw5D_0i1.js → Message-C55ydBaU.js} +2 -2
- package/dist/Message.js +3 -3
- package/dist/{Pagination-D1tP5FrM.js → Pagination-BVwKLcd5.js} +4 -4
- package/dist/Pagination.js +6 -6
- package/dist/{Placeholder-CnGzCZ5-.js → Placeholder-DFNppiVf.js} +1 -1
- package/dist/Placeholder.js +2 -2
- package/dist/{Popup-BiN_tZDN.js → Popup-D91ZiFWh.js} +1 -1
- package/dist/Popup.js +2 -2
- package/dist/{ProgressBar-BfJo_KyU.js → ProgressBar-DQGO2we8.js} +1 -1
- package/dist/ProgressBar.js +2 -2
- package/dist/{Radio-CV7vuQUj.js → Radio-BetZNoUQ.js} +1 -1
- package/dist/Radio.js +2 -2
- package/dist/{RadioGroup-C3XWSScc.js → RadioGroup-DzW5z_SD.js} +2 -2
- package/dist/RadioGroup.js +3 -3
- package/dist/{Range-C8RVrIM9.js → Range-9ijUzrty.js} +1 -1
- package/dist/Range.js +2 -2
- package/dist/{ScrollTop-B_TJ_k4m.js → ScrollTop-uDL4K_C6.js} +3 -3
- package/dist/ScrollTop.js +5 -5
- package/dist/{Select-CbPTrL3G.js → Select-ClGNTYfp.js} +7 -7
- package/dist/Select.d.ts +2 -2
- package/dist/Select.js +9 -9
- package/dist/{Spinner-ChKJQJTN.js → Spinner-B7ikVfUZ.js} +1 -1
- package/dist/Spinner.js +2 -2
- package/dist/{Tab-BJbzY1xd.js → Tab-CSHR71IX.js} +1 -1
- package/dist/Tab.js +2 -2
- package/dist/{TabGroup-BIaCHrKR.js → TabGroup-D7YbKXm8.js} +3 -3
- package/dist/TabGroup.js +4 -4
- package/dist/{TabPanel-CTyw410b.js → TabPanel-D_RHF3lv.js} +1 -1
- package/dist/TabPanel.js +2 -2
- package/dist/{Table-D3QmePJd.js → Table-CdosaNFb.js} +3 -3
- package/dist/Table.js +7 -7
- package/dist/{Tag-nUnWtHYy.js → Tag-BQBgkkAs.js} +1 -1
- package/dist/Tag.js +2 -2
- package/dist/{VisuallyHidden-DF2q9pTa.js → VisuallyHidden-CEBTA6hv.js} +1 -1
- package/dist/VisuallyHidden.js +2 -2
- package/dist/custom-elements.json +6445 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +30 -30
- package/dist/leu-accordion.js +2 -2
- package/dist/leu-button-group.js +5 -5
- package/dist/leu-button.js +4 -4
- package/dist/leu-chart-wrapper.js +3 -3
- package/dist/leu-checkbox-group.js +4 -4
- package/dist/leu-checkbox.js +3 -3
- package/dist/leu-chip-group.js +3 -3
- package/dist/leu-chip-link.js +2 -2
- package/dist/leu-chip-removable.js +3 -3
- package/dist/leu-chip-selectable.js +2 -2
- package/dist/leu-dialog.js +3 -3
- package/dist/leu-dropdown.js +8 -8
- package/dist/leu-file-input.js +6 -6
- package/dist/leu-icon.js +2 -2
- package/dist/leu-input.js +3 -3
- package/dist/leu-menu-item.d.ts +1 -1
- package/dist/leu-menu-item.js +3 -3
- package/dist/leu-menu.d.ts +1 -1
- package/dist/leu-menu.js +4 -4
- package/dist/leu-message.js +3 -3
- package/dist/leu-pagination.js +6 -6
- package/dist/leu-placeholder.js +2 -2
- package/dist/leu-popup.js +2 -2
- package/dist/leu-progress-bar.js +2 -2
- package/dist/leu-radio-group.js +3 -3
- package/dist/leu-radio.js +2 -2
- package/dist/leu-range.js +2 -2
- package/dist/leu-scroll-top.js +5 -5
- package/dist/leu-select.js +9 -9
- package/dist/leu-spinner.js +2 -2
- package/dist/leu-tab-group.js +4 -4
- package/dist/leu-tab-panel.js +2 -2
- package/dist/leu-tab.js +2 -2
- package/dist/leu-table.js +7 -7
- package/dist/leu-tag.js +2 -2
- package/dist/leu-visually-hidden.js +2 -2
- package/dist/vscode.html-custom-data.json +11 -11
- package/dist/vue/index.d.ts +20 -20
- package/dist/web-types.json +28 -28
- package/package.json +4 -1
- package/.editorconfig +0 -29
- package/.github/workflows/ci.yml +0 -81
- package/.github/workflows/deploy-github-pages.yaml +0 -34
- package/.github/workflows/publish.yml +0 -28
- package/.github/workflows/release-please.yml +0 -19
- package/.husky/commit-msg +0 -1
- package/.husky/pre-commit +0 -1
- package/.nvmrc +0 -1
- package/.prettierignore +0 -2
- package/.release-please-manifest.json +0 -3
- package/.storybook/main.ts +0 -34
- package/.storybook/manager-head.html +0 -1
- package/.storybook/manager.ts +0 -6
- package/.storybook/preview.ts +0 -96
- package/.storybook/static/fonts/Inter-Black.woff2 +0 -0
- package/.storybook/static/fonts/Inter-Regular.woff2 +0 -0
- package/.storybook/static/fonts.css +0 -11
- package/.storybook/static/global.css +0 -5
- package/.storybook/static/logo.svg +0 -19
- package/.storybook/theme.ts +0 -8
- package/AGENTS.md +0 -162
- package/CHANGELOG.md +0 -601
- package/CODE_OF_CONDUCT.md +0 -128
- package/CONTRIBUTING.md +0 -42
- package/commitlint.config.cjs +0 -1
- package/custom-elements-manifest.config.js +0 -46
- package/eslint.config.mjs +0 -79
- package/postcss.config.cjs +0 -16
- package/release-please-config.json +0 -9
- package/scripts/generate-component/generate.js +0 -167
- package/scripts/generate-component/templates/[Name].ts +0 -31
- package/scripts/generate-component/templates/[name].css +0 -6
- package/scripts/generate-component/templates/[namespace]-[name].ts +0 -11
- package/scripts/generate-component/templates/stories/[name].stories.ts +0 -26
- package/scripts/generate-component/templates/test/[name].test.ts +0 -23
- package/scripts/postcss-leu-font-styles.cjs +0 -154
- package/src/components/accordion/Accordion.ts +0 -108
- package/src/components/accordion/accordion.css +0 -150
- package/src/components/accordion/leu-accordion.ts +0 -11
- package/src/components/accordion/stories/accordion.stories.ts +0 -62
- package/src/components/accordion/test/accordion.test.ts +0 -118
- package/src/components/button/Button.ts +0 -286
- package/src/components/button/button.css +0 -317
- package/src/components/button/leu-button.ts +0 -11
- package/src/components/button/stories/button.stories.ts +0 -366
- package/src/components/button/test/button.test.ts +0 -417
- package/src/components/button-group/ButtonGroup.ts +0 -97
- package/src/components/button-group/button-group.css +0 -5
- package/src/components/button-group/leu-button-group.ts +0 -11
- package/src/components/button-group/stories/button-group.stories.ts +0 -54
- package/src/components/button-group/test/button-group.test.ts +0 -105
- package/src/components/chart-wrapper/ChartWrapper.ts +0 -78
- package/src/components/chart-wrapper/chart-wrapper.css +0 -87
- package/src/components/chart-wrapper/leu-chart-wrapper.ts +0 -11
- package/src/components/chart-wrapper/stories/chart-wrapper.stories.ts +0 -58
- package/src/components/chart-wrapper/test/chart-wrapper.test.ts +0 -77
- package/src/components/checkbox/Checkbox.ts +0 -129
- package/src/components/checkbox/CheckboxGroup.ts +0 -57
- package/src/components/checkbox/checkbox-group.css +0 -29
- package/src/components/checkbox/checkbox.css +0 -81
- package/src/components/checkbox/leu-checkbox-group.ts +0 -11
- package/src/components/checkbox/leu-checkbox.ts +0 -11
- package/src/components/checkbox/stories/checkbox-group.stories.ts +0 -59
- package/src/components/checkbox/stories/checkbox.stories.ts +0 -72
- package/src/components/checkbox/test/checkbox-group.test.ts +0 -109
- package/src/components/checkbox/test/checkbox.test.ts +0 -247
- package/src/components/chip/Chip.ts +0 -19
- package/src/components/chip/ChipGroup.ts +0 -122
- package/src/components/chip/ChipLink.ts +0 -24
- package/src/components/chip/ChipRemovable.ts +0 -45
- package/src/components/chip/ChipSelectable.ts +0 -80
- package/src/components/chip/chip-group.css +0 -15
- package/src/components/chip/chip.css +0 -139
- package/src/components/chip/exports.ts +0 -4
- package/src/components/chip/leu-chip-group.ts +0 -11
- package/src/components/chip/leu-chip-link.ts +0 -11
- package/src/components/chip/leu-chip-removable.ts +0 -11
- package/src/components/chip/leu-chip-selectable.ts +0 -11
- package/src/components/chip/stories/chip-group.stories.ts +0 -159
- package/src/components/chip/stories/chip-link.stories.ts +0 -45
- package/src/components/chip/stories/chip-removable.stories.ts +0 -42
- package/src/components/chip/stories/chip-selectable.stories.ts +0 -54
- package/src/components/chip/test/chip-group.test.ts +0 -171
- package/src/components/chip/test/chip-link.test.ts +0 -54
- package/src/components/chip/test/chip-removable.test.ts +0 -105
- package/src/components/chip/test/chip-selectable.test.ts +0 -101
- package/src/components/chip/test/chip.test.ts +0 -22
- package/src/components/dialog/Dialog.ts +0 -86
- package/src/components/dialog/dialog.css +0 -157
- package/src/components/dialog/leu-dialog.ts +0 -11
- package/src/components/dialog/stories/dialog.stories.ts +0 -142
- package/src/components/dialog/test/dialog.test.ts +0 -85
- package/src/components/dropdown/Dropdown.ts +0 -152
- package/src/components/dropdown/dropdown.css +0 -16
- package/src/components/dropdown/leu-dropdown.ts +0 -11
- package/src/components/dropdown/stories/dropdown.stories.ts +0 -58
- package/src/components/dropdown/test/dropdown.test.ts +0 -59
- package/src/components/file-input/FileInput.ts +0 -324
- package/src/components/file-input/file-input.css +0 -118
- package/src/components/file-input/leu-file-input.ts +0 -11
- package/src/components/file-input/stories/file-input.stories.ts +0 -45
- package/src/components/file-input/test/file-input.test.ts +0 -62
- package/src/components/icon/Icon.ts +0 -47
- package/src/components/icon/icon.css +0 -10
- package/src/components/icon/leu-icon.ts +0 -11
- package/src/components/icon/paths.ts +0 -219
- package/src/components/icon/stories/icon.stories.ts +0 -79
- package/src/components/icon/test/icon.test.ts +0 -50
- package/src/components/input/Input.ts +0 -469
- package/src/components/input/input.css +0 -238
- package/src/components/input/leu-input.ts +0 -11
- package/src/components/input/stories/input.stories.ts +0 -204
- package/src/components/input/test/input.test.ts +0 -603
- package/src/components/menu/Menu.ts +0 -149
- package/src/components/menu/MenuItem.ts +0 -168
- package/src/components/menu/leu-menu-item.ts +0 -11
- package/src/components/menu/leu-menu.ts +0 -11
- package/src/components/menu/menu-item.css +0 -77
- package/src/components/menu/menu.css +0 -19
- package/src/components/menu/stories/menu-item.stories.ts +0 -81
- package/src/components/menu/stories/menu.stories.ts +0 -54
- package/src/components/menu/test/menu-item.test.ts +0 -210
- package/src/components/menu/test/menu.test.ts +0 -125
- package/src/components/message/Message.ts +0 -118
- package/src/components/message/leu-message.ts +0 -11
- package/src/components/message/message.css +0 -163
- package/src/components/message/stories/message.mdx +0 -76
- package/src/components/message/stories/message.stories.ts +0 -149
- package/src/components/message/test/message.test.ts +0 -96
- package/src/components/pagination/Pagination.ts +0 -192
- package/src/components/pagination/leu-pagination.ts +0 -11
- package/src/components/pagination/pagination.css +0 -54
- package/src/components/pagination/stories/pagination.stories.ts +0 -115
- package/src/components/pagination/test/pagination.test.ts +0 -210
- package/src/components/placeholder/Placeholder.ts +0 -33
- package/src/components/placeholder/leu-placeholder.ts +0 -11
- package/src/components/placeholder/placeholder.css +0 -59
- package/src/components/placeholder/stories/placeholder.stories.ts +0 -34
- package/src/components/placeholder/test/placeholder.test.ts +0 -31
- package/src/components/popup/Popup.ts +0 -264
- package/src/components/popup/leu-popup.ts +0 -11
- package/src/components/popup/popup.css +0 -24
- package/src/components/popup/stories/popup.stories.ts +0 -117
- package/src/components/popup/test/popup.test.ts +0 -90
- package/src/components/progress-bar/ProgressBar.ts +0 -52
- package/src/components/progress-bar/leu-progress-bar.ts +0 -11
- package/src/components/progress-bar/progress-bar.css +0 -97
- package/src/components/progress-bar/stories/progress-bar.stories.ts +0 -39
- package/src/components/progress-bar/test/progress-bar.test.ts +0 -61
- package/src/components/radio/Radio.ts +0 -59
- package/src/components/radio/RadioGroup.ts +0 -181
- package/src/components/radio/leu-radio-group.ts +0 -11
- package/src/components/radio/leu-radio.ts +0 -11
- package/src/components/radio/radio-group.css +0 -29
- package/src/components/radio/radio.css +0 -76
- package/src/components/radio/stories/radio-group.stories.ts +0 -54
- package/src/components/radio/stories/radio.stories.ts +0 -55
- package/src/components/radio/test/radio-group.test.ts +0 -83
- package/src/components/radio/test/radio.test.ts +0 -119
- package/src/components/range/Range.ts +0 -400
- package/src/components/range/leu-range.ts +0 -11
- package/src/components/range/range.css +0 -227
- package/src/components/range/stories/range.stories.ts +0 -185
- package/src/components/range/test/range.test.ts +0 -228
- package/src/components/scroll-top/ScrollTop.ts +0 -91
- package/src/components/scroll-top/leu-scroll-top.ts +0 -11
- package/src/components/scroll-top/scroll-top.css +0 -50
- package/src/components/scroll-top/stories/scroll-top.stories.ts +0 -217
- package/src/components/scroll-top/test/scroll-top.test.ts +0 -22
- package/src/components/select/Select.ts +0 -570
- package/src/components/select/leu-select.ts +0 -11
- package/src/components/select/select.css +0 -222
- package/src/components/select/stories/select.stories.ts +0 -173
- package/src/components/select/test/fixtures.ts +0 -162
- package/src/components/select/test/select.test.ts +0 -937
- package/src/components/spinner/Spinner.ts +0 -31
- package/src/components/spinner/leu-spinner.ts +0 -11
- package/src/components/spinner/spinner.css +0 -20
- package/src/components/spinner/stories/spinner.stories.ts +0 -29
- package/src/components/spinner/test/spinner.test.ts +0 -30
- package/src/components/tab/Tab.ts +0 -72
- package/src/components/tab/TabGroup.ts +0 -267
- package/src/components/tab/TabPanel.ts +0 -59
- package/src/components/tab/leu-tab-group.ts +0 -11
- package/src/components/tab/leu-tab-panel.ts +0 -11
- package/src/components/tab/leu-tab.ts +0 -11
- package/src/components/tab/stories/tab.stories.ts +0 -97
- package/src/components/tab/tab-group.css +0 -63
- package/src/components/tab/tab-panel.css +0 -10
- package/src/components/tab/tab.css +0 -54
- package/src/components/tab/test/tab-group.test.ts +0 -426
- package/src/components/tab/test/tab-panel.test.ts +0 -102
- package/src/components/tab/test/tab.test.ts +0 -139
- package/src/components/table/Table.ts +0 -253
- package/src/components/table/leu-table.ts +0 -11
- package/src/components/table/stories/table.stories.ts +0 -131
- package/src/components/table/table.css +0 -112
- package/src/components/table/test/table.test.ts +0 -37
- package/src/components/tag/Tag.ts +0 -28
- package/src/components/tag/leu-tag.ts +0 -11
- package/src/components/tag/stories/tag.stories.ts +0 -107
- package/src/components/tag/tag.css +0 -42
- package/src/components/tag/test/tag.test.ts +0 -28
- package/src/components/visually-hidden/VisuallyHidden.ts +0 -16
- package/src/components/visually-hidden/leu-visually-hidden.ts +0 -11
- package/src/components/visually-hidden/stories/visually-hidden.stories.ts +0 -22
- package/src/components/visually-hidden/test/visually-hidden.test.ts +0 -34
- package/src/components/visually-hidden/visually-hidden.css +0 -10
- package/src/docs/contributing.mdx +0 -154
- package/src/docs/installation.mdx +0 -35
- package/src/docs/theme.mdx +0 -400
- package/src/docs/usage.mdx +0 -73
- package/src/global.d.ts +0 -11
- package/src/index.ts +0 -29
- package/src/lib/LeuElement.ts +0 -43
- package/src/lib/a11y.ts +0 -26
- package/src/lib/hasSlotController.ts +0 -74
- package/src/lib/mixins/FormAssociatedMixin.ts +0 -115
- package/src/lib/styleMap.ts +0 -139
- package/src/lib/utils.ts +0 -45
- package/src/styles/common-styles.css +0 -14
- package/src/styles/custom-media.css +0 -6
- package/src/styles/font-definitions.json +0 -210
- package/src/styles/style.stories.ts +0 -64
- package/src/styles/theme.css +0 -90
- package/stat_zh.png +0 -0
- package/stylelint.config.mjs +0 -23
- package/tsconfig.build.json +0 -24
- package/tsconfig.json +0 -14
- package/tsdown.config.ts +0 -35
- package/web-test-runner.config.mjs +0 -102
|
@@ -1,603 +0,0 @@
|
|
|
1
|
-
import { html } from "lit"
|
|
2
|
-
import { ifDefined } from "lit/directives/if-defined.js"
|
|
3
|
-
import { fixture, expect, elementUpdated } from "@open-wc/testing"
|
|
4
|
-
import { sendKeys } from "@web/test-runner-commands"
|
|
5
|
-
import { spy } from "sinon"
|
|
6
|
-
|
|
7
|
-
import "../leu-input.js"
|
|
8
|
-
import { LeuInput } from "../leu-input.js"
|
|
9
|
-
|
|
10
|
-
async function defaultFixture(args = {}) {
|
|
11
|
-
return fixture<LeuInput>(html`
|
|
12
|
-
<leu-input
|
|
13
|
-
value=${ifDefined(args.value)}
|
|
14
|
-
error=${ifDefined(args.error)}
|
|
15
|
-
pattern=${ifDefined(args.pattern)}
|
|
16
|
-
prefix=${ifDefined(args.prefix)}
|
|
17
|
-
suffix=${ifDefined(args.suffix)}
|
|
18
|
-
size=${ifDefined(args.size)}
|
|
19
|
-
icon=${ifDefined(args.icon)}
|
|
20
|
-
type=${ifDefined(args.type)}
|
|
21
|
-
min=${ifDefined(args.min)}
|
|
22
|
-
max=${ifDefined(args.max)}
|
|
23
|
-
minlength=${ifDefined(args.minlength)}
|
|
24
|
-
maxlength=${ifDefined(args.maxlength)}
|
|
25
|
-
step=${ifDefined(args.step)}
|
|
26
|
-
label=${args.label || "Label"}
|
|
27
|
-
?disabled=${args.disabled}
|
|
28
|
-
?required=${args.required}
|
|
29
|
-
?clearable=${args.clearable}
|
|
30
|
-
?novalidate=${args.novalidate}
|
|
31
|
-
>
|
|
32
|
-
</leu-input>
|
|
33
|
-
<!-- Firefox needs an other focusable element. Otherwise, sendKeys({press: "Tab"}) will have no effect -->
|
|
34
|
-
<div tabindex="0"></div>
|
|
35
|
-
`)
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
describe("LeuInput", () => {
|
|
39
|
-
it("is a defined element", async () => {
|
|
40
|
-
const el = customElements.get("leu-input")
|
|
41
|
-
|
|
42
|
-
await expect(el).not.to.be.undefined
|
|
43
|
-
})
|
|
44
|
-
|
|
45
|
-
it("passes the a11y audit", async () => {
|
|
46
|
-
const el = await defaultFixture()
|
|
47
|
-
|
|
48
|
-
await expect(el).shadowDom.to.be.accessible()
|
|
49
|
-
})
|
|
50
|
-
|
|
51
|
-
it("delegates the focus to the input element", async () => {
|
|
52
|
-
const el = await defaultFixture()
|
|
53
|
-
|
|
54
|
-
const input = el.shadowRoot.querySelector("input")
|
|
55
|
-
|
|
56
|
-
el.focus()
|
|
57
|
-
|
|
58
|
-
expect(el.shadowRoot.activeElement).to.equal(input)
|
|
59
|
-
})
|
|
60
|
-
|
|
61
|
-
it("can't be focused when disabled", async () => {
|
|
62
|
-
const el = await defaultFixture({ disabled: true })
|
|
63
|
-
|
|
64
|
-
el.focus()
|
|
65
|
-
|
|
66
|
-
expect(el.shadowRoot.activeElement).to.be.null
|
|
67
|
-
})
|
|
68
|
-
|
|
69
|
-
it("renders the defined label", async () => {
|
|
70
|
-
const el = await defaultFixture({ label: "Vorname" })
|
|
71
|
-
|
|
72
|
-
const label = el.shadowRoot.querySelector("label")
|
|
73
|
-
|
|
74
|
-
expect(label).to.have.text("Vorname")
|
|
75
|
-
})
|
|
76
|
-
|
|
77
|
-
it("has type text by default", async () => {
|
|
78
|
-
const el = await defaultFixture()
|
|
79
|
-
|
|
80
|
-
expect(el.type).to.equal("text")
|
|
81
|
-
})
|
|
82
|
-
|
|
83
|
-
it("passes the defined type to the input element", async () => {
|
|
84
|
-
const el = await defaultFixture({ type: "email" })
|
|
85
|
-
|
|
86
|
-
const input = el.shadowRoot.querySelector("input")
|
|
87
|
-
|
|
88
|
-
expect(input.type).to.equal("email")
|
|
89
|
-
|
|
90
|
-
el.type = "password"
|
|
91
|
-
await elementUpdated(el)
|
|
92
|
-
|
|
93
|
-
expect(input.type).to.equal("password")
|
|
94
|
-
})
|
|
95
|
-
|
|
96
|
-
it("passes the defined value to the input element", async () => {
|
|
97
|
-
const el = await defaultFixture({ label: "Vorname", value: "John" })
|
|
98
|
-
|
|
99
|
-
const input = el.shadowRoot.querySelector("input")
|
|
100
|
-
|
|
101
|
-
expect(input.value).to.equal("John")
|
|
102
|
-
|
|
103
|
-
el.value = "Jane"
|
|
104
|
-
await elementUpdated(el)
|
|
105
|
-
|
|
106
|
-
expect(input.value).to.equal("Jane")
|
|
107
|
-
})
|
|
108
|
-
|
|
109
|
-
it("syncs the value property of the input and the value property of the component", async () => {
|
|
110
|
-
const el = await defaultFixture({ label: "Vorname", value: "John" })
|
|
111
|
-
|
|
112
|
-
const input = el.shadowRoot.querySelector("input")
|
|
113
|
-
|
|
114
|
-
el.focus()
|
|
115
|
-
|
|
116
|
-
await sendKeys({ press: "Backspace" })
|
|
117
|
-
await sendKeys({ press: "Backspace" })
|
|
118
|
-
await sendKeys({ press: "Backspace" })
|
|
119
|
-
await sendKeys({ press: "Backspace" })
|
|
120
|
-
await sendKeys({ type: "Jane" })
|
|
121
|
-
await elementUpdated(el)
|
|
122
|
-
|
|
123
|
-
expect(el.value).to.equal("Jane")
|
|
124
|
-
expect(input.value).to.equal("Jane")
|
|
125
|
-
})
|
|
126
|
-
|
|
127
|
-
it("doesn't accept letters when type is set to number", async () => {
|
|
128
|
-
const el = await defaultFixture({ label: "Länge", type: "number" })
|
|
129
|
-
|
|
130
|
-
const input = el.shadowRoot.querySelector("input")
|
|
131
|
-
|
|
132
|
-
el.focus()
|
|
133
|
-
|
|
134
|
-
await sendKeys({ type: "123" })
|
|
135
|
-
await elementUpdated(el)
|
|
136
|
-
|
|
137
|
-
expect(el.value).to.equal("123")
|
|
138
|
-
expect(input.value).to.equal("123")
|
|
139
|
-
|
|
140
|
-
await sendKeys({ type: "abc" })
|
|
141
|
-
await elementUpdated(el)
|
|
142
|
-
|
|
143
|
-
expect(el.value).to.not.equal("123abc")
|
|
144
|
-
expect(input.value).to.not.equal("123abc")
|
|
145
|
-
})
|
|
146
|
-
|
|
147
|
-
it("fires a change event after losing focus", async () => {
|
|
148
|
-
const el = await defaultFixture({ label: "Vorname" })
|
|
149
|
-
|
|
150
|
-
const input = el.shadowRoot.querySelector("input")
|
|
151
|
-
|
|
152
|
-
const changeSpy = spy()
|
|
153
|
-
input.addEventListener("change", changeSpy)
|
|
154
|
-
|
|
155
|
-
el.focus()
|
|
156
|
-
|
|
157
|
-
await sendKeys({ type: "John" })
|
|
158
|
-
await sendKeys({ press: "Tab" })
|
|
159
|
-
|
|
160
|
-
expect(changeSpy).to.have.been.calledOnce
|
|
161
|
-
})
|
|
162
|
-
|
|
163
|
-
it("fires a input event while typing ", async () => {
|
|
164
|
-
const el = await defaultFixture({ label: "Vorname", maxlength: 3 })
|
|
165
|
-
|
|
166
|
-
const input = el.shadowRoot.querySelector("input")
|
|
167
|
-
|
|
168
|
-
const inputSpy = spy()
|
|
169
|
-
input.addEventListener("input", inputSpy)
|
|
170
|
-
|
|
171
|
-
el.focus()
|
|
172
|
-
|
|
173
|
-
await sendKeys({ type: "John" })
|
|
174
|
-
|
|
175
|
-
// Should fire 3 times, because maxlength is set to 3
|
|
176
|
-
expect(inputSpy).to.have.been.called.calledThrice
|
|
177
|
-
})
|
|
178
|
-
|
|
179
|
-
it("fires a input event while typing ", async () => {})
|
|
180
|
-
|
|
181
|
-
it("renders a prefix", async () => {
|
|
182
|
-
const el = await defaultFixture({ label: "Preis", prefix: "CHF" })
|
|
183
|
-
|
|
184
|
-
const prefix = el.shadowRoot.querySelector(".prefix")
|
|
185
|
-
|
|
186
|
-
expect(prefix).to.have.text("CHF")
|
|
187
|
-
})
|
|
188
|
-
|
|
189
|
-
it("renders a suffix", async () => {
|
|
190
|
-
const el = await defaultFixture({ label: "Länge", suffix: "cm" })
|
|
191
|
-
|
|
192
|
-
const suffix = el.shadowRoot.querySelector(".suffix")
|
|
193
|
-
|
|
194
|
-
expect(suffix).to.have.text("cm")
|
|
195
|
-
})
|
|
196
|
-
|
|
197
|
-
it("renders an icon", async () => {
|
|
198
|
-
const _el = await defaultFixture({ label: "Vorname", icon: "user" })
|
|
199
|
-
})
|
|
200
|
-
|
|
201
|
-
it("renders a clear button", async () => {
|
|
202
|
-
const el = await defaultFixture({ label: "Vorname", clearable: true })
|
|
203
|
-
|
|
204
|
-
let clearButton = el.shadowRoot.querySelector(".clear-button")
|
|
205
|
-
expect(clearButton).to.not.exist
|
|
206
|
-
|
|
207
|
-
el.focus()
|
|
208
|
-
await sendKeys({ type: "John" })
|
|
209
|
-
|
|
210
|
-
clearButton = el.shadowRoot.querySelector(".clear-button")
|
|
211
|
-
expect(clearButton).to.not.be.null
|
|
212
|
-
})
|
|
213
|
-
|
|
214
|
-
it("clears the value when clicking the clear button", async () => {
|
|
215
|
-
const el = await defaultFixture({ label: "Vorname", clearable: true })
|
|
216
|
-
|
|
217
|
-
el.focus()
|
|
218
|
-
|
|
219
|
-
await sendKeys({ type: "John" })
|
|
220
|
-
await elementUpdated(el)
|
|
221
|
-
|
|
222
|
-
const clearButton = el.shadowRoot.querySelector(".clear-button")
|
|
223
|
-
clearButton.click()
|
|
224
|
-
|
|
225
|
-
expect(el.value).to.equal("")
|
|
226
|
-
})
|
|
227
|
-
|
|
228
|
-
it("renders an error message when value is less than min", async () => {
|
|
229
|
-
const el = await defaultFixture({ label: "Länge", min: 10, type: "number" })
|
|
230
|
-
|
|
231
|
-
el.focus()
|
|
232
|
-
|
|
233
|
-
await sendKeys({ type: "5" })
|
|
234
|
-
await sendKeys({ press: "Tab" })
|
|
235
|
-
await elementUpdated(el)
|
|
236
|
-
|
|
237
|
-
const error = el.shadowRoot.querySelector(".error")
|
|
238
|
-
|
|
239
|
-
expect(error).not.to.be.null
|
|
240
|
-
})
|
|
241
|
-
|
|
242
|
-
it("renders an error message when value greater than max", async () => {
|
|
243
|
-
const el = await defaultFixture({ label: "Länge", max: 10, type: "number" })
|
|
244
|
-
|
|
245
|
-
el.focus()
|
|
246
|
-
|
|
247
|
-
await sendKeys({ type: "15" })
|
|
248
|
-
await sendKeys({ press: "Tab" })
|
|
249
|
-
await elementUpdated(el)
|
|
250
|
-
|
|
251
|
-
const error = el.shadowRoot.querySelector(".error")
|
|
252
|
-
|
|
253
|
-
expect(error).not.to.be.null
|
|
254
|
-
})
|
|
255
|
-
|
|
256
|
-
it("renders an error message when the value doesn't match the step", async () => {
|
|
257
|
-
const el = await defaultFixture({
|
|
258
|
-
label: "Länge",
|
|
259
|
-
step: 10,
|
|
260
|
-
type: "number",
|
|
261
|
-
})
|
|
262
|
-
|
|
263
|
-
el.focus()
|
|
264
|
-
|
|
265
|
-
await sendKeys({ type: "15" })
|
|
266
|
-
await sendKeys({ press: "Tab" })
|
|
267
|
-
await elementUpdated(el)
|
|
268
|
-
|
|
269
|
-
const error = el.shadowRoot.querySelector(".error")
|
|
270
|
-
|
|
271
|
-
expect(error).not.to.be.null
|
|
272
|
-
})
|
|
273
|
-
|
|
274
|
-
it("renders an error message when value is shorter than minlength", async () => {
|
|
275
|
-
const el = await defaultFixture({
|
|
276
|
-
label: "Vorname",
|
|
277
|
-
minlength: 3,
|
|
278
|
-
})
|
|
279
|
-
|
|
280
|
-
el.focus()
|
|
281
|
-
|
|
282
|
-
await sendKeys({ type: "Jo" })
|
|
283
|
-
await sendKeys({ press: "Tab" })
|
|
284
|
-
await elementUpdated(el)
|
|
285
|
-
|
|
286
|
-
const error = el.shadowRoot.querySelector(".error")
|
|
287
|
-
|
|
288
|
-
expect(error).not.to.be.null
|
|
289
|
-
})
|
|
290
|
-
|
|
291
|
-
it("renders an error message when value is longer than maxlength", async () => {
|
|
292
|
-
const el = await defaultFixture({
|
|
293
|
-
label: "Vorname",
|
|
294
|
-
maxlength: 10,
|
|
295
|
-
value: "Andrea Gabathuler",
|
|
296
|
-
})
|
|
297
|
-
|
|
298
|
-
el.focus()
|
|
299
|
-
|
|
300
|
-
/* Remove the selection, if there is one */
|
|
301
|
-
await sendKeys({ press: "ArrowRight" })
|
|
302
|
-
/*
|
|
303
|
-
* Trigger an update of the value that is too long.
|
|
304
|
-
* Browser won't allow to type more than maxlength.
|
|
305
|
-
*/
|
|
306
|
-
await sendKeys({ press: "Backspace" })
|
|
307
|
-
await sendKeys({ press: "Tab" })
|
|
308
|
-
await elementUpdated(el)
|
|
309
|
-
|
|
310
|
-
const error = el.shadowRoot.querySelector(".error")
|
|
311
|
-
|
|
312
|
-
expect(error).not.to.be.null
|
|
313
|
-
})
|
|
314
|
-
|
|
315
|
-
it("renders an error message when value doesn't match pattern", async () => {
|
|
316
|
-
const el = await defaultFixture({
|
|
317
|
-
label: "Vorname",
|
|
318
|
-
pattern: "([A-Z]{2}-)?d{4,5}", // Pseudo zip code e.g. CH-8000 or 8000 or DE-12345
|
|
319
|
-
})
|
|
320
|
-
|
|
321
|
-
el.focus()
|
|
322
|
-
|
|
323
|
-
await sendKeys({ type: "123" })
|
|
324
|
-
await sendKeys({ press: "Tab" })
|
|
325
|
-
await elementUpdated(el)
|
|
326
|
-
|
|
327
|
-
let error = el.shadowRoot.querySelector(".error")
|
|
328
|
-
expect(error).not.to.be.null
|
|
329
|
-
|
|
330
|
-
el.value = ""
|
|
331
|
-
await elementUpdated(el)
|
|
332
|
-
|
|
333
|
-
el.focus()
|
|
334
|
-
|
|
335
|
-
await sendKeys({ type: "DE-987" })
|
|
336
|
-
await sendKeys({ press: "Tab" })
|
|
337
|
-
await elementUpdated(el)
|
|
338
|
-
|
|
339
|
-
error = el.shadowRoot.querySelector(".error")
|
|
340
|
-
expect(error).not.to.be.null
|
|
341
|
-
})
|
|
342
|
-
|
|
343
|
-
it("renders an error message when value is required but is empty", async () => {
|
|
344
|
-
const el = await defaultFixture({
|
|
345
|
-
label: "Vorname",
|
|
346
|
-
required: true,
|
|
347
|
-
})
|
|
348
|
-
|
|
349
|
-
el.focus()
|
|
350
|
-
|
|
351
|
-
await sendKeys({ press: "Tab" })
|
|
352
|
-
await elementUpdated(el)
|
|
353
|
-
|
|
354
|
-
const error = el.shadowRoot.querySelector(".error")
|
|
355
|
-
|
|
356
|
-
expect(error).not.to.be.null
|
|
357
|
-
})
|
|
358
|
-
|
|
359
|
-
it("renders a custom error message", async () => {
|
|
360
|
-
const el = await defaultFixture({
|
|
361
|
-
label: "Vorname",
|
|
362
|
-
error: "Bitte geben Sie einen Vornamen ein.",
|
|
363
|
-
})
|
|
364
|
-
|
|
365
|
-
el.focus()
|
|
366
|
-
|
|
367
|
-
await sendKeys({ press: "Tab" })
|
|
368
|
-
await elementUpdated(el)
|
|
369
|
-
|
|
370
|
-
const error = el.shadowRoot.querySelector(".error")
|
|
371
|
-
|
|
372
|
-
expect(error).to.have.trimmed.text("Bitte geben Sie einen Vornamen ein.")
|
|
373
|
-
})
|
|
374
|
-
|
|
375
|
-
it("resets the error message as soon as value is valid again", async () => {
|
|
376
|
-
const el = await defaultFixture({
|
|
377
|
-
label: "Vorname",
|
|
378
|
-
required: true,
|
|
379
|
-
})
|
|
380
|
-
|
|
381
|
-
el.focus()
|
|
382
|
-
|
|
383
|
-
await sendKeys({ press: "Tab" })
|
|
384
|
-
await elementUpdated(el)
|
|
385
|
-
|
|
386
|
-
let error = el.shadowRoot.querySelector(".error")
|
|
387
|
-
expect(error).not.to.be.null
|
|
388
|
-
|
|
389
|
-
el.focus()
|
|
390
|
-
|
|
391
|
-
await sendKeys({ type: "Jacqueline" })
|
|
392
|
-
await sendKeys({ press: "Tab" })
|
|
393
|
-
await elementUpdated(el)
|
|
394
|
-
|
|
395
|
-
error = el.shadowRoot.querySelector(".error")
|
|
396
|
-
expect(error).to.be.null
|
|
397
|
-
})
|
|
398
|
-
|
|
399
|
-
it("doesn't render an error message when novalidate is set", async () => {
|
|
400
|
-
const el = await defaultFixture({
|
|
401
|
-
label: "Vorname",
|
|
402
|
-
required: true,
|
|
403
|
-
novalidate: true,
|
|
404
|
-
})
|
|
405
|
-
|
|
406
|
-
el.focus()
|
|
407
|
-
|
|
408
|
-
await sendKeys({ press: "Tab" })
|
|
409
|
-
await elementUpdated(el)
|
|
410
|
-
|
|
411
|
-
const error = el.shadowRoot.querySelector(".error")
|
|
412
|
-
|
|
413
|
-
expect(error).to.be.null
|
|
414
|
-
})
|
|
415
|
-
|
|
416
|
-
it("shows only one 'after' element", async () => {
|
|
417
|
-
const el = await defaultFixture({
|
|
418
|
-
label: "Länge",
|
|
419
|
-
type: "number",
|
|
420
|
-
min: 50,
|
|
421
|
-
icon: "user",
|
|
422
|
-
clearable: true,
|
|
423
|
-
})
|
|
424
|
-
|
|
425
|
-
const getErrorIcon = () => el.shadowRoot.querySelector(".error-icon")
|
|
426
|
-
const getClearButton = () => el.shadowRoot.querySelector(".clear-button")
|
|
427
|
-
const getIcon = () => el.shadowRoot.querySelector(".icon")
|
|
428
|
-
|
|
429
|
-
/* Priority: Error > Clear > Icon */
|
|
430
|
-
expect(getErrorIcon()).to.be.null
|
|
431
|
-
expect(getClearButton()).to.be.null
|
|
432
|
-
expect(getIcon()).not.to.be.null
|
|
433
|
-
|
|
434
|
-
el.focus()
|
|
435
|
-
await sendKeys({ type: "60" })
|
|
436
|
-
|
|
437
|
-
expect(getErrorIcon()).to.be.null
|
|
438
|
-
expect(getClearButton()).not.to.be.null
|
|
439
|
-
expect(getIcon()).to.be.null
|
|
440
|
-
|
|
441
|
-
el.value = ""
|
|
442
|
-
await elementUpdated(el)
|
|
443
|
-
|
|
444
|
-
el.focus()
|
|
445
|
-
await sendKeys({ type: "40" })
|
|
446
|
-
await sendKeys({ press: "Tab" })
|
|
447
|
-
await elementUpdated(el)
|
|
448
|
-
|
|
449
|
-
expect(getErrorIcon()).not.to.be.null
|
|
450
|
-
expect(getClearButton()).to.be.null
|
|
451
|
-
expect(getIcon()).to.be.null
|
|
452
|
-
})
|
|
453
|
-
|
|
454
|
-
it("returns the value as a number when it is possible", async () => {
|
|
455
|
-
const el = await defaultFixture({ label: "Länge", type: "number" })
|
|
456
|
-
|
|
457
|
-
expect(el.valueAsNumber).to.be.NaN
|
|
458
|
-
|
|
459
|
-
el.focus()
|
|
460
|
-
|
|
461
|
-
await sendKeys({ type: "123" })
|
|
462
|
-
|
|
463
|
-
expect(el.valueAsNumber).to.equal(123)
|
|
464
|
-
|
|
465
|
-
el.type = "text"
|
|
466
|
-
await elementUpdated(el)
|
|
467
|
-
|
|
468
|
-
el.focus()
|
|
469
|
-
await sendKeys({ type: "abc" })
|
|
470
|
-
|
|
471
|
-
expect(el.valueAsNumber).to.be.NaN
|
|
472
|
-
})
|
|
473
|
-
|
|
474
|
-
it("check input is valid", async () => {
|
|
475
|
-
{
|
|
476
|
-
const el = await defaultFixture({ label: "Länge", type: "number" })
|
|
477
|
-
el.focus()
|
|
478
|
-
|
|
479
|
-
await sendKeys({ type: "text" })
|
|
480
|
-
expect(el.checkValidity()).to.be.false
|
|
481
|
-
|
|
482
|
-
await elementUpdated(el)
|
|
483
|
-
const error = el.shadowRoot.querySelector(".error")
|
|
484
|
-
expect(error).not.to.be.null
|
|
485
|
-
}
|
|
486
|
-
|
|
487
|
-
{
|
|
488
|
-
const el = await defaultFixture({ label: "Länge", type: "number" })
|
|
489
|
-
el.focus()
|
|
490
|
-
|
|
491
|
-
await sendKeys({ type: "123" })
|
|
492
|
-
expect(el.checkValidity()).to.be.true
|
|
493
|
-
|
|
494
|
-
await elementUpdated(el)
|
|
495
|
-
const error = el.shadowRoot.querySelector(".error")
|
|
496
|
-
expect(error).to.be.null
|
|
497
|
-
}
|
|
498
|
-
})
|
|
499
|
-
|
|
500
|
-
it("returns the defaultValue when no value has been explicitly set", async () => {
|
|
501
|
-
const el = await defaultFixture({ value: "John" })
|
|
502
|
-
|
|
503
|
-
expect(el.defaultValue).to.equal("John")
|
|
504
|
-
expect(el.value).to.equal("John")
|
|
505
|
-
})
|
|
506
|
-
|
|
507
|
-
it("value property overrides the defaultValue", async () => {
|
|
508
|
-
const el = await defaultFixture({ value: "John" })
|
|
509
|
-
|
|
510
|
-
el.value = "Jane"
|
|
511
|
-
await elementUpdated(el)
|
|
512
|
-
|
|
513
|
-
expect(el.defaultValue).to.equal("John")
|
|
514
|
-
expect(el.value).to.equal("Jane")
|
|
515
|
-
})
|
|
516
|
-
|
|
517
|
-
it("resets to the defaultValue when the form is reset", async () => {
|
|
518
|
-
const form = await fixture<HTMLFormElement>(html`
|
|
519
|
-
<form>
|
|
520
|
-
<leu-input name="name" value="John" label="Name"></leu-input>
|
|
521
|
-
</form>
|
|
522
|
-
`)
|
|
523
|
-
|
|
524
|
-
const input = form.querySelector<LeuInput>("leu-input")
|
|
525
|
-
input.value = "Jane"
|
|
526
|
-
await elementUpdated(input)
|
|
527
|
-
|
|
528
|
-
expect(input.value).to.equal("Jane")
|
|
529
|
-
|
|
530
|
-
form.reset()
|
|
531
|
-
await elementUpdated(input)
|
|
532
|
-
|
|
533
|
-
expect(input.value).to.equal("John")
|
|
534
|
-
})
|
|
535
|
-
|
|
536
|
-
it("updates the form data when the defaultValue changes before any interaction", async () => {
|
|
537
|
-
const form = await fixture<HTMLFormElement>(html`
|
|
538
|
-
<form>
|
|
539
|
-
<leu-input name="name" value="John" label="Name"></leu-input>
|
|
540
|
-
</form>
|
|
541
|
-
`)
|
|
542
|
-
|
|
543
|
-
const input = form.querySelector<LeuInput>("leu-input")
|
|
544
|
-
|
|
545
|
-
let formData = new FormData(form)
|
|
546
|
-
expect(formData.get("name")).to.equal("John")
|
|
547
|
-
|
|
548
|
-
// Changing defaultValue before interaction should update the value
|
|
549
|
-
input.defaultValue = "Jane"
|
|
550
|
-
await elementUpdated(input)
|
|
551
|
-
|
|
552
|
-
formData = new FormData(form)
|
|
553
|
-
expect(formData.get("name")).to.equal("Jane")
|
|
554
|
-
})
|
|
555
|
-
|
|
556
|
-
it("does not update the value when the defaultValue changes after interaction", async () => {
|
|
557
|
-
const form = await fixture<HTMLFormElement>(html`
|
|
558
|
-
<form>
|
|
559
|
-
<leu-input name="name" label="Name"></leu-input>
|
|
560
|
-
<div tabindex="0"></div>
|
|
561
|
-
</form>
|
|
562
|
-
`)
|
|
563
|
-
|
|
564
|
-
const input = form.querySelector<LeuInput>("leu-input")
|
|
565
|
-
input.focus()
|
|
566
|
-
await sendKeys({ type: "John" })
|
|
567
|
-
await elementUpdated(input)
|
|
568
|
-
|
|
569
|
-
// User has interacted, changing defaultValue should NOT override the typed value
|
|
570
|
-
input.defaultValue = "Jane"
|
|
571
|
-
await elementUpdated(input)
|
|
572
|
-
|
|
573
|
-
expect(input.value).to.equal("John")
|
|
574
|
-
|
|
575
|
-
const formData = new FormData(form)
|
|
576
|
-
expect(formData.get("name")).to.equal("John")
|
|
577
|
-
})
|
|
578
|
-
|
|
579
|
-
it("updates the form data when the value or disabled state changes", async () => {
|
|
580
|
-
const form = await fixture<HTMLFormElement>(html`
|
|
581
|
-
<form>
|
|
582
|
-
<leu-input name="name" value="John" label="Name"></leu-input>
|
|
583
|
-
</form>
|
|
584
|
-
`)
|
|
585
|
-
|
|
586
|
-
const input = form.querySelector<LeuInput>("leu-input")
|
|
587
|
-
|
|
588
|
-
let formData = new FormData(form)
|
|
589
|
-
expect(formData.get("name")).to.equal("John")
|
|
590
|
-
|
|
591
|
-
input.value = "Jane"
|
|
592
|
-
await elementUpdated(input)
|
|
593
|
-
|
|
594
|
-
formData = new FormData(form)
|
|
595
|
-
expect(formData.get("name")).to.equal("Jane")
|
|
596
|
-
|
|
597
|
-
input.disabled = true
|
|
598
|
-
await elementUpdated(input)
|
|
599
|
-
|
|
600
|
-
formData = new FormData(form)
|
|
601
|
-
expect(formData.get("name")).to.be.null
|
|
602
|
-
})
|
|
603
|
-
})
|