@crowdstrike/glide-core 0.9.5 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -53
- package/dist/accordion.d.ts +10 -10
- package/dist/accordion.js +1 -1
- package/dist/accordion.stories.d.ts +0 -1
- package/dist/accordion.styles.js +36 -38
- package/dist/accordion.test.basics.js +13 -95
- package/dist/accordion.test.events.js +21 -33
- package/dist/accordion.test.focus.d.ts +1 -0
- package/dist/accordion.test.focus.js +11 -0
- package/dist/accordion.test.interactions.d.ts +1 -0
- package/dist/accordion.test.interactions.js +75 -0
- package/dist/button-group.button.d.ts +2 -4
- package/dist/button-group.button.js +1 -1
- package/dist/button-group.button.styles.js +6 -14
- package/dist/button-group.button.test.basics.js +8 -17
- package/dist/button-group.button.test.interactions.js +4 -4
- package/dist/button-group.d.ts +0 -2
- package/dist/button-group.test.basics.js +10 -10
- package/dist/button-group.test.events.js +2 -2
- package/dist/button-group.test.interactions.js +1 -1
- package/dist/button.d.ts +7 -10
- package/dist/button.js +1 -1
- package/dist/button.styles.js +4 -7
- package/dist/button.test.basics.js +10 -26
- package/dist/button.test.events.js +9 -9
- package/dist/checkbox-group.d.ts +3 -4
- package/dist/checkbox-group.js +1 -1
- package/dist/checkbox-group.styles.js +13 -1
- package/dist/checkbox-group.test.basics.js +8 -12
- package/dist/checkbox-group.test.focus.js +7 -7
- package/dist/checkbox-group.test.interactions.d.ts +1 -0
- package/dist/checkbox-group.test.interactions.js +82 -0
- package/dist/checkbox.d.ts +5 -4
- package/dist/checkbox.js +1 -1
- package/dist/checkbox.styles.js +35 -15
- package/dist/checkbox.test.basics.js +6 -15
- package/dist/checkbox.test.focus.js +4 -2
- package/dist/checkbox.test.interactions.js +11 -11
- package/dist/drawer.d.ts +2 -5
- package/dist/drawer.js +1 -1
- package/dist/drawer.test.accessibility.js +8 -8
- package/dist/drawer.test.basics.js +16 -16
- package/dist/drawer.test.closing.js +18 -16
- package/dist/drawer.test.events.js +13 -24
- package/dist/drawer.test.methods.js +22 -22
- package/dist/dropdown.d.ts +7 -5
- package/dist/dropdown.js +1 -1
- package/dist/dropdown.option.d.ts +1 -3
- package/dist/dropdown.option.js +1 -1
- package/dist/dropdown.option.styles.js +31 -19
- package/dist/dropdown.option.test.basics.js +4 -4
- package/dist/dropdown.styles.js +39 -3
- package/dist/dropdown.test.basics.js +8 -13
- package/dist/dropdown.test.basics.multiple.js +63 -31
- package/dist/dropdown.test.basics.single.js +49 -0
- package/dist/dropdown.test.focus.filterable.js +12 -3
- package/dist/dropdown.test.focus.js +18 -2
- package/dist/dropdown.test.interactions.filterable.js +121 -45
- package/dist/dropdown.test.interactions.multiple.js +71 -30
- package/dist/dropdown.test.interactions.single.js +26 -4
- package/dist/form-controls-layout.d.ts +0 -2
- package/dist/icon-button.d.ts +2 -4
- package/dist/icon-button.js +1 -1
- package/dist/icon-button.test.basics.js +14 -82
- package/dist/icon-button.test.focus.d.ts +1 -0
- package/dist/icon-button.test.focus.js +13 -0
- package/dist/input.d.ts +4 -5
- package/dist/input.js +1 -1
- package/dist/input.styles.js +4 -4
- package/dist/input.test.basics.js +0 -52
- package/dist/input.test.events.js +27 -27
- package/dist/input.test.focus.js +27 -26
- package/dist/input.test.form.js +6 -6
- package/dist/input.test.validity.js +130 -130
- package/dist/label.d.ts +1 -3
- package/dist/label.js +1 -1
- package/dist/label.styles.js +5 -6
- package/dist/label.test.basics.js +4 -4
- package/dist/library/ow.js +1 -1
- package/dist/menu.button.d.ts +0 -2
- package/dist/menu.button.test.basics.js +3 -3
- package/dist/menu.d.ts +1 -4
- package/dist/menu.js +1 -1
- package/dist/menu.link.d.ts +1 -2
- package/dist/menu.link.js +1 -1
- package/dist/menu.options.d.ts +0 -2
- package/dist/menu.test.events.js +6 -6
- package/dist/menu.test.focus.js +5 -18
- package/dist/menu.test.interactions.js +48 -24
- package/dist/modal.d.ts +6 -17
- package/dist/modal.icon-button.d.ts +0 -2
- package/dist/modal.icon-button.test.basics.js +3 -3
- package/dist/modal.js +1 -1
- package/dist/modal.styles.js +13 -19
- package/dist/modal.tertiary-icon.d.ts +0 -3
- package/dist/modal.tertiary-icon.test.basics.js +3 -3
- package/dist/modal.test.basics.js +9 -5
- package/dist/modal.test.close.js +2 -2
- package/dist/modal.test.events.js +2 -2
- package/dist/radio-group.d.ts +0 -3
- package/dist/radio-group.js +1 -1
- package/dist/radio-group.test.basics.js +61 -61
- package/dist/radio-group.test.events.js +13 -13
- package/dist/radio-group.test.focus.js +1 -1
- package/dist/radio-group.test.form.js +2 -2
- package/dist/radio-group.test.validity.js +12 -12
- package/dist/radio.d.ts +0 -3
- package/dist/radio.styles.js +4 -12
- package/dist/split-button.d.ts +8 -11
- package/dist/split-button.js +1 -1
- package/dist/split-button.primary-button.d.ts +21 -0
- package/dist/split-button.primary-button.js +1 -0
- package/dist/split-button.primary-button.styles.js +96 -0
- package/dist/split-button.primary-button.test.basics.d.ts +1 -0
- package/dist/split-button.primary-button.test.basics.js +31 -0
- package/dist/split-button.primary-button.test.focus.d.ts +1 -0
- package/dist/split-button.primary-button.test.focus.js +14 -0
- package/dist/split-button.primary-link.d.ts +19 -0
- package/dist/split-button.primary-link.js +1 -0
- package/dist/split-button.primary-link.test.basics.d.ts +1 -0
- package/dist/split-button.primary-link.test.basics.js +30 -0
- package/dist/split-button.primary-link.test.focus.d.ts +1 -0
- package/dist/split-button.primary-link.test.focus.js +15 -0
- package/dist/split-button.secondary-button.d.ts +25 -0
- package/dist/split-button.secondary-button.js +1 -0
- package/dist/split-button.secondary-button.styles.js +103 -0
- package/dist/split-button.secondary-button.test.basics.d.ts +1 -0
- package/dist/split-button.secondary-button.test.basics.js +58 -0
- package/dist/split-button.secondary-button.test.focus.d.ts +1 -0
- package/dist/split-button.secondary-button.test.focus.js +14 -0
- package/dist/split-button.secondary-button.test.interactions.d.ts +2 -0
- package/dist/split-button.secondary-button.test.interactions.js +30 -0
- package/dist/split-button.stories.d.ts +4 -3
- package/dist/split-button.styles.js +1 -94
- package/dist/split-button.test.basics.d.ts +2 -1
- package/dist/split-button.test.basics.js +67 -80
- package/dist/split-button.test.interactions.d.ts +4 -0
- package/dist/split-button.test.interactions.js +51 -0
- package/dist/styles/opacity-and-scale-animation.js +2 -6
- package/dist/styles/variables.css +1 -1
- package/dist/tab.d.ts +2 -11
- package/dist/tab.group.d.ts +2 -5
- package/dist/tab.group.styles.js +12 -15
- package/dist/tab.group.test.basics.js +49 -34
- package/dist/tab.group.test.interactions.js +17 -14
- package/dist/tab.panel.d.ts +0 -3
- package/dist/tab.test.basics.js +6 -5
- package/dist/tag.d.ts +6 -4
- package/dist/tag.js +1 -1
- package/dist/tag.styles.js +36 -36
- package/dist/tag.test.basics.js +16 -109
- package/dist/tag.test.events.js +12 -8
- package/dist/tag.test.focus.js +2 -3
- package/dist/tag.test.interactions.d.ts +1 -0
- package/dist/tag.test.interactions.js +34 -0
- package/dist/textarea.d.ts +2 -3
- package/dist/textarea.js +2 -2
- package/dist/textarea.test.basics.js +8 -8
- package/dist/textarea.test.events.js +55 -55
- package/dist/textarea.test.form.js +9 -9
- package/dist/textarea.test.validity.js +167 -135
- package/dist/toasts.d.ts +1 -5
- package/dist/toasts.test.basics.js +2 -1
- package/dist/toasts.toast.d.ts +1 -4
- package/dist/toasts.toast.js +1 -1
- package/dist/toasts.toast.styles.js +12 -0
- package/dist/toggle.d.ts +0 -2
- package/dist/toggle.styles.js +1 -5
- package/dist/toggle.test.basics.js +2 -2
- package/dist/toggle.test.interactions.js +7 -7
- package/dist/tooltip.d.ts +2 -1
- package/dist/tooltip.js +1 -1
- package/dist/tooltip.styles.js +37 -14
- package/dist/tooltip.test.basics.d.ts +1 -1
- package/dist/tooltip.test.basics.js +19 -19
- package/dist/tree.d.ts +0 -2
- package/dist/tree.item.d.ts +5 -7
- package/dist/tree.item.icon-button.d.ts +1 -4
- package/dist/tree.item.js +1 -1
- package/dist/tree.item.menu.d.ts +0 -2
- package/dist/tree.item.menu.test.basics.js +9 -9
- package/dist/tree.item.styles.js +4 -3
- package/dist/tree.item.test.basics.js +43 -31
- package/dist/tree.test.basics.js +29 -29
- package/dist/tree.test.focus.js +77 -74
- package/package.json +12 -14
- package/dist/split-container.d.ts +0 -31
- package/dist/split-container.js +0 -1
- package/dist/split-container.styles.js +0 -132
- package/dist/split-container.test.basics.d.ts +0 -3
- package/dist/split-container.test.basics.js +0 -445
- package/dist/split-container.test.interactions.d.ts +0 -1
- package/dist/split-container.test.interactions.js +0 -20
- package/dist/split-link.d.ts +0 -25
- package/dist/split-link.js +0 -1
- package/dist/split-link.test.basics.d.ts +0 -1
- package/dist/split-link.test.basics.js +0 -93
- package/dist/split-link.test.interactions.d.ts +0 -1
- package/dist/split-link.test.interactions.js +0 -20
- package/dist/status-indicator.d.ts +0 -30
- package/dist/status-indicator.js +0 -1
- package/dist/status-indicator.stories.d.ts +0 -5
- package/dist/status-indicator.styles.js +0 -58
- package/dist/status-indicator.test.basics.d.ts +0 -1
- package/dist/status-indicator.test.basics.js +0 -102
- /package/dist/{split-container.styles.d.ts → split-button.primary-button.styles.d.ts} +0 -0
- /package/dist/{status-indicator.styles.d.ts → split-button.secondary-button.styles.d.ts} +0 -0
@@ -20,9 +20,9 @@ it('renders a textarea with two rows and value when attribute `value` is set ',
|
|
20
20
|
></glide-core-textarea>`);
|
21
21
|
const textarea = component.shadowRoot.querySelector('textarea');
|
22
22
|
expect(component);
|
23
|
-
expect(component).to.
|
23
|
+
expect(component?.getAttribute('rows')).to.equal('2');
|
24
24
|
expect(textarea).to.exist;
|
25
|
-
expect(textarea).to.
|
25
|
+
expect(textarea?.getAttribute('rows')).to.equal('2');
|
26
26
|
});
|
27
27
|
it('renders the `rows` attribute on the textarea when set', async () => {
|
28
28
|
const component = await fixture(html `<glide-core-textarea
|
@@ -31,7 +31,7 @@ it('renders the `rows` attribute on the textarea when set', async () => {
|
|
31
31
|
rows="5"
|
32
32
|
></glide-core-textarea>`);
|
33
33
|
const textarea = component.shadowRoot.querySelector('textarea');
|
34
|
-
expect(textarea).to.
|
34
|
+
expect(textarea?.getAttribute('rows')).to.equal('5');
|
35
35
|
});
|
36
36
|
it('renders a label when attribute `label` is set', async () => {
|
37
37
|
const component = await fixture(html `<glide-core-textarea
|
@@ -49,7 +49,7 @@ it('renders the textarea as readonly when attribute `readonly` is set', async ()
|
|
49
49
|
readonly
|
50
50
|
></glide-core-textarea>`);
|
51
51
|
const textarea = component.shadowRoot.querySelector('textarea');
|
52
|
-
expect(textarea).to.
|
52
|
+
expect(textarea?.hasAttribute('readonly')).to.be.true;
|
53
53
|
});
|
54
54
|
it('renders the textarea as disabled when attribute `disabled` is set', async () => {
|
55
55
|
const component = await fixture(html `<glide-core-textarea
|
@@ -58,7 +58,7 @@ it('renders the textarea as disabled when attribute `disabled` is set', async ()
|
|
58
58
|
disabled
|
59
59
|
></glide-core-textarea>`);
|
60
60
|
const textarea = component.shadowRoot.querySelector('textarea');
|
61
|
-
expect(textarea).to.
|
61
|
+
expect(textarea?.hasAttribute('disabled')).to.be.true;
|
62
62
|
});
|
63
63
|
it('renders the textarea with a placeholder when attribute `placeholder` is set', async () => {
|
64
64
|
const component = await fixture(html `<glide-core-textarea
|
@@ -67,7 +67,7 @@ it('renders the textarea with a placeholder when attribute `placeholder` is set'
|
|
67
67
|
placeholder="placeholder"
|
68
68
|
></glide-core-textarea>`);
|
69
69
|
const textarea = component.shadowRoot.querySelector('textarea');
|
70
|
-
expect(textarea).to.
|
70
|
+
expect(textarea?.getAttribute('placeholder')).to.equal('placeholder');
|
71
71
|
});
|
72
72
|
it('renders `required` on textarea when set', async () => {
|
73
73
|
const component = await fixture(html `<glide-core-textarea
|
@@ -76,7 +76,7 @@ it('renders `required` on textarea when set', async () => {
|
|
76
76
|
required
|
77
77
|
></glide-core-textarea>`);
|
78
78
|
const textarea = component.shadowRoot.querySelector('textarea');
|
79
|
-
expect(textarea).to.
|
79
|
+
expect(textarea?.hasAttribute('required')).to.be.true;
|
80
80
|
});
|
81
81
|
it('renders a `name` attribute on the textarea when set', async () => {
|
82
82
|
const component = await fixture(html `<glide-core-textarea
|
@@ -85,7 +85,7 @@ it('renders a `name` attribute on the textarea when set', async () => {
|
|
85
85
|
name="test-name"
|
86
86
|
></glide-core-textarea>`);
|
87
87
|
const textarea = component.shadowRoot.querySelector('textarea');
|
88
|
-
expect(textarea).to.
|
88
|
+
expect(textarea?.getAttribute('name')).to.equal('test-name');
|
89
89
|
});
|
90
90
|
it('supports a "tooltip" slot', async () => {
|
91
91
|
const component = await fixture(html `
|
@@ -4,68 +4,68 @@ import * as sinon from 'sinon';
|
|
4
4
|
import { aTimeout, expect, fixture, html, oneEvent } from '@open-wc/testing';
|
5
5
|
import { sendKeys } from '@web/test-runner-commands';
|
6
6
|
it('dispatches a `input` event when typed in', async () => {
|
7
|
-
const
|
7
|
+
const component = await fixture(html `<glide-core-textarea label="label"></glide-core-textarea>`);
|
8
8
|
setTimeout(async () => {
|
9
|
-
|
9
|
+
component.focus();
|
10
10
|
await sendKeys({ type: 'testing' });
|
11
|
-
|
11
|
+
component.blur();
|
12
12
|
});
|
13
|
-
const event = await oneEvent(
|
13
|
+
const event = await oneEvent(component, 'input');
|
14
14
|
expect(event instanceof Event).to.be.true;
|
15
15
|
expect(event.bubbles).to.be.true;
|
16
16
|
});
|
17
17
|
it('dispatches an `change` event when typed in', async () => {
|
18
|
-
const
|
18
|
+
const component = await fixture(html `<glide-core-textarea label="label"></glide-core-textarea>`);
|
19
19
|
setTimeout(async () => {
|
20
|
-
|
20
|
+
component.focus();
|
21
21
|
await sendKeys({ type: 'testing' });
|
22
|
-
|
22
|
+
component.blur();
|
23
23
|
});
|
24
|
-
const event = await oneEvent(
|
24
|
+
const event = await oneEvent(component, 'change');
|
25
25
|
expect(event instanceof Event).to.be.true;
|
26
26
|
expect(event.bubbles).to.be.true;
|
27
27
|
});
|
28
28
|
it('dispatches an `invalid` event on submit when required and no value', async () => {
|
29
29
|
const form = document.createElement('form');
|
30
|
-
const
|
30
|
+
const component = await fixture(html `<glide-core-textarea label="label" required></glide-core-textarea>`, {
|
31
31
|
parentNode: form,
|
32
32
|
});
|
33
33
|
setTimeout(() => form.requestSubmit());
|
34
|
-
const event = await oneEvent(
|
34
|
+
const event = await oneEvent(component, 'invalid');
|
35
35
|
expect(event instanceof Event).to.be.true;
|
36
36
|
});
|
37
37
|
it('dispatches an `invalid` event after `checkValidity` is called when required and no value', async () => {
|
38
38
|
const form = document.createElement('form');
|
39
|
-
const
|
39
|
+
const component = await fixture(html `<glide-core-textarea label="label" required></glide-core-textarea>`, {
|
40
40
|
parentNode: form,
|
41
41
|
});
|
42
|
-
setTimeout(() =>
|
43
|
-
const event = await oneEvent(
|
42
|
+
setTimeout(() => component.checkValidity());
|
43
|
+
const event = await oneEvent(component, 'invalid');
|
44
44
|
expect(event instanceof Event).to.be.true;
|
45
45
|
});
|
46
46
|
it('dispatches an `invalid` event after `reportValidity` is called when required and no value', async () => {
|
47
47
|
const form = document.createElement('form');
|
48
|
-
const
|
48
|
+
const component = await fixture(html `<glide-core-textarea label="label" required></glide-core-textarea>`, {
|
49
49
|
parentNode: form,
|
50
50
|
});
|
51
|
-
setTimeout(() =>
|
52
|
-
const event = await oneEvent(
|
51
|
+
setTimeout(() => component.reportValidity());
|
52
|
+
const event = await oneEvent(component, 'invalid');
|
53
53
|
expect(event instanceof Event).to.be.true;
|
54
54
|
});
|
55
55
|
it('does not dispatch an `invalid` event after `checkValidity` is called when not required', async () => {
|
56
56
|
const form = document.createElement('form');
|
57
|
-
const
|
57
|
+
const component = await fixture(html `<glide-core-textarea label="label"></glide-core-textarea>`, {
|
58
58
|
parentNode: form,
|
59
59
|
});
|
60
60
|
const spy = sinon.spy();
|
61
|
-
|
62
|
-
|
61
|
+
component.addEventListener('invalid', spy);
|
62
|
+
component.checkValidity();
|
63
63
|
await aTimeout(0);
|
64
64
|
expect(spy.callCount).to.equal(0);
|
65
65
|
});
|
66
66
|
it('does not dispatch an `invalid` event after `checkValidity` is called when required, no value, and disabled', async () => {
|
67
67
|
const form = document.createElement('form');
|
68
|
-
const
|
68
|
+
const component = await fixture(html `<glide-core-textarea
|
69
69
|
label="label"
|
70
70
|
required
|
71
71
|
disabled
|
@@ -73,25 +73,25 @@ it('does not dispatch an `invalid` event after `checkValidity` is called when re
|
|
73
73
|
parentNode: form,
|
74
74
|
});
|
75
75
|
const spy = sinon.spy();
|
76
|
-
|
77
|
-
|
76
|
+
component.addEventListener('invalid', spy);
|
77
|
+
component.checkValidity();
|
78
78
|
await aTimeout(0);
|
79
79
|
expect(spy.callCount).to.equal(0);
|
80
80
|
});
|
81
81
|
it('does not dispatch an `invalid` event when `reportValidity` is called when not required,', async () => {
|
82
82
|
const form = document.createElement('form');
|
83
|
-
const
|
83
|
+
const component = await fixture(html `<glide-core-textarea label="label"></glide-core-textarea>`, {
|
84
84
|
parentNode: form,
|
85
85
|
});
|
86
86
|
const spy = sinon.spy();
|
87
|
-
|
88
|
-
|
87
|
+
component.addEventListener('invalid', spy);
|
88
|
+
component.reportValidity();
|
89
89
|
await aTimeout(0);
|
90
90
|
expect(spy.callCount).to.equal(0);
|
91
91
|
});
|
92
92
|
it('does not dispatch an `invalid` event when `reportValidity` is called when required, no value, and disabled', async () => {
|
93
93
|
const form = document.createElement('form');
|
94
|
-
const
|
94
|
+
const component = await fixture(html `<glide-core-textarea
|
95
95
|
label="label"
|
96
96
|
required
|
97
97
|
disabled
|
@@ -99,78 +99,78 @@ it('does not dispatch an `invalid` event when `reportValidity` is called when re
|
|
99
99
|
parentNode: form,
|
100
100
|
});
|
101
101
|
const spy = sinon.spy();
|
102
|
-
|
103
|
-
|
102
|
+
component.addEventListener('invalid', spy);
|
103
|
+
component.reportValidity();
|
104
104
|
await aTimeout(0);
|
105
105
|
expect(spy.callCount).to.equal(0);
|
106
106
|
});
|
107
107
|
it('dispatches an `invalid` event after `requestSubmit` is called when `maxlength` exceeded', async () => {
|
108
108
|
const form = document.createElement('form');
|
109
|
-
const
|
109
|
+
const component = await fixture(html `<glide-core-textarea
|
110
110
|
label="label"
|
111
111
|
maxlength="3"
|
112
112
|
></glide-core-textarea>`, {
|
113
113
|
parentNode: form,
|
114
114
|
});
|
115
115
|
setTimeout(async () => {
|
116
|
-
|
116
|
+
component.focus();
|
117
117
|
await sendKeys({ type: 'testing' });
|
118
118
|
form.requestSubmit();
|
119
119
|
});
|
120
|
-
const event = await oneEvent(
|
120
|
+
const event = await oneEvent(component, 'invalid');
|
121
121
|
expect(event instanceof Event).to.be.true;
|
122
122
|
});
|
123
123
|
it('dispatches an `invalid` event after `checkValidity` is called when `maxlength` exceeded', async () => {
|
124
124
|
const form = document.createElement('form');
|
125
|
-
const
|
125
|
+
const component = await fixture(html `<glide-core-textarea
|
126
126
|
label="label"
|
127
127
|
maxlength="3"
|
128
128
|
></glide-core-textarea>`, {
|
129
129
|
parentNode: form,
|
130
130
|
});
|
131
131
|
setTimeout(async () => {
|
132
|
-
|
132
|
+
component.focus();
|
133
133
|
await sendKeys({ type: 'testing' });
|
134
|
-
|
134
|
+
component.checkValidity();
|
135
135
|
});
|
136
|
-
const event = await oneEvent(
|
136
|
+
const event = await oneEvent(component, 'invalid');
|
137
137
|
expect(event instanceof Event).to.be.true;
|
138
138
|
});
|
139
139
|
it('dispatches an `invalid` event after `reportValidity` is called when `maxlength` exceeded', async () => {
|
140
140
|
const form = document.createElement('form');
|
141
|
-
const
|
141
|
+
const component = await fixture(html `<glide-core-textarea
|
142
142
|
label="label"
|
143
143
|
maxlength="3"
|
144
144
|
></glide-core-textarea>`, {
|
145
145
|
parentNode: form,
|
146
146
|
});
|
147
147
|
setTimeout(async () => {
|
148
|
-
|
148
|
+
component.focus();
|
149
149
|
await sendKeys({ type: 'testing' });
|
150
|
-
|
150
|
+
component.reportValidity();
|
151
151
|
});
|
152
|
-
const event = await oneEvent(
|
152
|
+
const event = await oneEvent(component, 'invalid');
|
153
153
|
expect(event instanceof Event).to.be.true;
|
154
154
|
});
|
155
155
|
it('does not dispatch an `invalid` event after `checkValidity` is called when `maxlength` not exceeded', async () => {
|
156
156
|
const form = document.createElement('form');
|
157
|
-
const
|
157
|
+
const component = await fixture(html `<glide-core-textarea
|
158
158
|
label="label"
|
159
159
|
maxlength="3"
|
160
160
|
></glide-core-textarea>`, {
|
161
161
|
parentNode: form,
|
162
162
|
});
|
163
163
|
const spy = sinon.spy();
|
164
|
-
|
165
|
-
|
164
|
+
component.addEventListener('invalid', spy);
|
165
|
+
component.focus();
|
166
166
|
await sendKeys({ type: 'ab' });
|
167
|
-
|
167
|
+
component.checkValidity();
|
168
168
|
await aTimeout(0);
|
169
169
|
expect(spy.callCount).to.equal(0);
|
170
170
|
});
|
171
171
|
it('does not dispatch an `invalid` event after `checkValidity` is called when `maxlength` exceeded and disabled', async () => {
|
172
172
|
const form = document.createElement('form');
|
173
|
-
const
|
173
|
+
const component = await fixture(html `<glide-core-textarea
|
174
174
|
label="label"
|
175
175
|
maxlength="3"
|
176
176
|
disabled
|
@@ -178,32 +178,32 @@ it('does not dispatch an `invalid` event after `checkValidity` is called when `m
|
|
178
178
|
parentNode: form,
|
179
179
|
});
|
180
180
|
const spy = sinon.spy();
|
181
|
-
|
182
|
-
|
181
|
+
component.addEventListener('invalid', spy);
|
182
|
+
component.focus();
|
183
183
|
await sendKeys({ type: 'test' });
|
184
|
-
|
184
|
+
component.checkValidity();
|
185
185
|
await aTimeout(0);
|
186
186
|
expect(spy.callCount).to.equal(0);
|
187
187
|
});
|
188
188
|
it('does not dispatch an `invalid` event when `reportValidity` is called and `maxlength` is not exceeded,', async () => {
|
189
189
|
const form = document.createElement('form');
|
190
|
-
const
|
190
|
+
const component = await fixture(html `<glide-core-textarea
|
191
191
|
label="label"
|
192
192
|
maxlength="3"
|
193
193
|
></glide-core-textarea>`, {
|
194
194
|
parentNode: form,
|
195
195
|
});
|
196
196
|
const spy = sinon.spy();
|
197
|
-
|
198
|
-
|
197
|
+
component.addEventListener('invalid', spy);
|
198
|
+
component.focus();
|
199
199
|
await sendKeys({ type: 'ab' });
|
200
|
-
|
200
|
+
component.reportValidity();
|
201
201
|
await aTimeout(0);
|
202
202
|
expect(spy.callCount).to.equal(0);
|
203
203
|
});
|
204
204
|
it('does not dispatch an `invalid` event when `reportValidity` is called `maxlength` exceeded and disabled,', async () => {
|
205
205
|
const form = document.createElement('form');
|
206
|
-
const
|
206
|
+
const component = await fixture(html `<glide-core-textarea
|
207
207
|
label="label"
|
208
208
|
maxlength="3"
|
209
209
|
disabled
|
@@ -211,10 +211,10 @@ it('does not dispatch an `invalid` event when `reportValidity` is called `maxlen
|
|
211
211
|
parentNode: form,
|
212
212
|
});
|
213
213
|
const spy = sinon.spy();
|
214
|
-
|
215
|
-
|
214
|
+
component.addEventListener('invalid', spy);
|
215
|
+
component.focus();
|
216
216
|
await sendKeys({ type: 'test' });
|
217
|
-
|
217
|
+
component.reportValidity();
|
218
218
|
await aTimeout(0);
|
219
219
|
expect(spy.callCount).to.equal(0);
|
220
220
|
});
|
@@ -4,22 +4,22 @@ import { expect, fixture, html } from '@open-wc/testing';
|
|
4
4
|
import { sendKeys } from '@web/test-runner-commands';
|
5
5
|
it('can be reset to initial value', async () => {
|
6
6
|
const form = document.createElement('form');
|
7
|
-
const
|
7
|
+
const component = await fixture(html `<glide-core-textarea
|
8
8
|
value="testing"
|
9
9
|
label="label"
|
10
10
|
></glide-core-textarea>`, { parentNode: form });
|
11
|
-
|
11
|
+
component.focus();
|
12
12
|
await sendKeys({ type: '-value' });
|
13
|
-
await expect(
|
13
|
+
await expect(component.value).to.equal('testing-value');
|
14
14
|
form.reset();
|
15
|
-
expect(
|
15
|
+
expect(component.value).to.equal('testing');
|
16
16
|
});
|
17
17
|
it('can be reset if there was no initial value', async () => {
|
18
18
|
const form = document.createElement('form');
|
19
|
-
const
|
20
|
-
|
19
|
+
const component = await fixture(html `<glide-core-textarea label="label"></glide-core-textarea>`, { parentNode: form });
|
20
|
+
component.value = 'value';
|
21
21
|
form.reset();
|
22
|
-
expect(
|
22
|
+
expect(component.value).to.equal('');
|
23
23
|
});
|
24
24
|
it('has `formData` when it has a `value` and `name`', async () => {
|
25
25
|
const form = document.createElement('form');
|
@@ -33,12 +33,12 @@ it('has `formData` when it has a `value` and `name`', async () => {
|
|
33
33
|
});
|
34
34
|
it('has `formData` when text is entered and has a `name`', async () => {
|
35
35
|
const form = document.createElement('form');
|
36
|
-
const
|
36
|
+
const component = await fixture(html `<glide-core-textarea
|
37
37
|
value=""
|
38
38
|
label="label"
|
39
39
|
name="name"
|
40
40
|
></glide-core-textarea>`, { parentNode: form });
|
41
|
-
|
41
|
+
component?.focus();
|
42
42
|
await sendKeys({ type: 'testing' });
|
43
43
|
const formData = new FormData(form);
|
44
44
|
expect(formData.get('name')).to.be.equal('testing');
|