Skip to content

Commit 532b837

Browse files
author
Sam Menza
committed
Completed unit tests
1 parent de5d14a commit 532b837

File tree

1 file changed

+54
-24
lines changed

1 file changed

+54
-24
lines changed

src/combobox/tests/unit/ComboBox.ts

+54-24
Original file line numberDiff line numberDiff line change
@@ -28,24 +28,8 @@ import {
2828

2929
const harness = createHarness([ compareId, compareWidgetId, compareAria, compareAriaControls ]);
3030

31-
const _helperText = 'This input is valid';
32-
33-
const _validity = { valid: false, message: 'This input is invalid' };
34-
35-
function _getValid(valid: { valid?: boolean; message?: string; } | boolean | undefined): { valid: boolean | undefined; message: string | undefined } {
36-
if (valid === undefined) {
37-
return { valid: undefined, message: undefined };
38-
}
39-
40-
if (typeof valid === 'boolean') {
41-
return { valid, message: undefined };
42-
}
43-
44-
return {
45-
valid: valid.valid,
46-
message: valid.message
47-
};
48-
}
31+
const helperText = 'This is helpertext';
32+
const invalidMessage = 'This input is invalid';
4933

5034
const testOptions: any[] = [
5135
{
@@ -192,11 +176,11 @@ const getExpectedVdom = function(
192176
label = false,
193177
states: States = {},
194178
focused = false,
195-
validity?: { valid: boolean | undefined, message: string | undefined} | boolean | undefined
179+
validity: { valid: boolean | undefined, message: string | undefined} = {valid: undefined, message: undefined},
180+
helperText?: string
196181
) {
197-
const valid = _getValid(validity);
198182
const menuVdom = getExpectedMenu(useTestProperties, open);
199-
const controlsVdom = getExpectedControls(useTestProperties, label, states, valid);
183+
const controlsVdom = getExpectedControls(useTestProperties, label, states, validity, helperText);
200184
const { disabled, readOnly, required } = states;
201185

202186
return v('div', {
@@ -208,8 +192,8 @@ const getExpectedVdom = function(
208192
open ? css.open : null,
209193
useTestProperties ? css.clearable : null,
210194
focused ? css.focused : null,
211-
valid.valid === false ? css.invalid : null,
212-
valid.valid === true ? css.valid : null
195+
validity.valid === false ? css.invalid : null,
196+
validity.valid === true ? css.valid : null
213197
],
214198
key: 'root',
215199
role: 'combobox'
@@ -221,7 +205,7 @@ const getExpectedVdom = function(
221205
disabled,
222206
focused,
223207
hidden: undefined,
224-
invalid: !valid.valid,
208+
invalid: !validity.valid,
225209
readOnly,
226210
required,
227211
forId: useTestProperties ? 'foo' : ''
@@ -684,6 +668,52 @@ registerSuite('ComboBox', {
684668
h.expectPartial('@dropdown', () => getExpectedMenu(true, true, { visualFocus: true }));
685669
h.trigger('@dropdown', 'onmouseover', stubEvent);
686670
h.expectPartial('@dropdown', () => getExpectedMenu(true, true));
671+
},
672+
673+
'renders helpertext'() {
674+
const h = harness(() => w(ComboBox, {
675+
...testProperties,
676+
helperText: helperText
677+
}));
678+
h.expect(() => getExpectedVdom(true, false, true, {}, false, {valid: undefined, message: undefined}, helperText));
679+
},
680+
681+
'renders validity correctly'() {
682+
let h = harness(() => w(ComboBox, {
683+
...testProperties,
684+
valid: undefined
685+
}));
686+
h.expect(() => getExpectedVdom(true, false, true, {}, false, {valid: undefined, message: undefined}));
687+
688+
h = harness(() => w(ComboBox, {
689+
...testProperties,
690+
valid: true
691+
}));
692+
h.expect(() => getExpectedVdom(true, false, true, {}, false, {valid: true, message: undefined}));
693+
694+
h = harness(() => w(ComboBox, {
695+
...testProperties,
696+
valid: false
697+
}));
698+
h.expect(() => getExpectedVdom(true, false, true, {}, false, {valid: false, message: undefined}));
699+
700+
h = harness(() => w(ComboBox, {
701+
...testProperties,
702+
valid: {valid: true, message: invalidMessage}
703+
}));
704+
h.expect(() => getExpectedVdom(true, false, true, {}, false, {valid: true, message: invalidMessage}));
705+
706+
h = harness(() => w(ComboBox, {
707+
...testProperties,
708+
valid: {valid: false, message: invalidMessage}
709+
}));
710+
h.expect(() => getExpectedVdom(true, false, true, {}, false, {valid: false, message: invalidMessage}));
711+
712+
h = harness(() => w(ComboBox, {
713+
...testProperties,
714+
valid: {valid: false, message: undefined}
715+
}));
716+
h.expect(() => getExpectedVdom(true, false, true, {}, false, {valid: false, message: undefined}));
687717
}
688718
}
689719
});

0 commit comments

Comments
 (0)