@@ -21,36 +21,68 @@ test('it should work as expected', () => {
21
21
22
22
queryByTestId ( 'select' ) . value = 'banana'
23
23
expect ( queryByTestId ( 'select' ) ) . toHaveDisplayValue ( 'Banana' )
24
+ expect ( queryByTestId ( 'select' ) ) . toHaveDisplayValue ( / [ b B ] a n a / )
24
25
} )
25
26
26
- test ( 'it should work with select multiple' , ( ) => {
27
- const { queryByTestId} = render ( `
28
- <select id="fruits" data-testid="select" multiple>
29
- <option value="">Select a fruit...</option>
30
- <option value="ananas" selected>Ananas</option>
31
- <option value="banana">Banana</option>
32
- <option value="avocado" selected>Avocado</option>
33
- </select>
34
- ` )
27
+ describe ( 'with multiple select' , ( ) => {
28
+ function mount ( ) {
29
+ return render ( `
30
+ <select id="fruits" data-testid="select" multiple>
31
+ <option value="">Select a fruit...</option>
32
+ <option value="ananas" selected>Ananas</option>
33
+ <option value="banana">Banana</option>
34
+ <option value="avocado" selected>Avocado</option>
35
+ </select>
36
+ ` )
37
+ }
35
38
36
- expect ( queryByTestId ( 'select' ) ) . toHaveDisplayValue ( [ 'Ananas' , 'Avocado' ] )
37
- expect ( ( ) =>
38
- expect ( queryByTestId ( 'select' ) ) . not . toHaveDisplayValue ( [
39
+ it ( 'matches only when all the multiple selected values are equal to all the expected values' , ( ) => {
40
+ const subject = mount ( )
41
+ expect ( subject . queryByTestId ( 'select' ) ) . toHaveDisplayValue ( [
39
42
'Ananas' ,
40
43
'Avocado' ,
41
- ] ) ,
42
- ) . toThrow ( )
43
-
44
- expect ( queryByTestId ( 'select' ) ) . not . toHaveDisplayValue ( 'Ananas' )
45
- expect ( ( ) =>
46
- expect ( queryByTestId ( 'select' ) ) . toHaveDisplayValue ( 'Ananas' ) ,
47
- ) . toThrow ( )
44
+ ] )
45
+ expect ( ( ) =>
46
+ expect ( subject . queryByTestId ( 'select' ) ) . not . toHaveDisplayValue ( [
47
+ 'Ananas' ,
48
+ 'Avocado' ,
49
+ ] ) ,
50
+ ) . toThrow ( )
51
+ expect ( subject . queryByTestId ( 'select' ) ) . not . toHaveDisplayValue ( [
52
+ 'Ananas' ,
53
+ 'Avocado' ,
54
+ 'Orange' ,
55
+ ] )
56
+ expect ( subject . queryByTestId ( 'select' ) ) . not . toHaveDisplayValue ( 'Ananas' )
57
+ expect ( ( ) =>
58
+ expect ( subject . queryByTestId ( 'select' ) ) . toHaveDisplayValue ( 'Ananas' ) ,
59
+ ) . toThrow ( )
60
+
61
+ Array . from ( subject . queryByTestId ( 'select' ) . options ) . forEach ( option => {
62
+ option . selected = [ 'ananas' , 'banana' ] . includes ( option . value )
63
+ } )
64
+
65
+ expect ( subject . queryByTestId ( 'select' ) ) . toHaveDisplayValue ( [
66
+ 'Ananas' ,
67
+ 'Banana' ,
68
+ ] )
69
+ } )
48
70
49
- Array . from ( queryByTestId ( 'select' ) . options ) . forEach ( option => {
50
- option . selected = [ 'ananas' , 'banana' ] . includes ( option . value )
71
+ it ( 'matches even when the expected values are unordered' , ( ) => {
72
+ const subject = mount ( )
73
+ expect ( subject . queryByTestId ( 'select' ) ) . toHaveDisplayValue ( [
74
+ 'Avocado' ,
75
+ 'Ananas' ,
76
+ ] )
51
77
} )
52
78
53
- expect ( queryByTestId ( 'select' ) ) . toHaveDisplayValue ( [ 'Ananas' , 'Banana' ] )
79
+ it ( 'matches with regex expected values' , ( ) => {
80
+ const subject = mount ( )
81
+ expect ( subject . queryByTestId ( 'select' ) ) . toHaveDisplayValue ( [
82
+ / [ A a ] n a n a s / ,
83
+ 'Avocado' ,
84
+ ] )
85
+ } )
54
86
} )
55
87
56
88
test ( 'it should work with input elements' , ( ) => {
@@ -59,6 +91,7 @@ test('it should work with input elements', () => {
59
91
` )
60
92
61
93
expect ( queryByTestId ( 'input' ) ) . toHaveDisplayValue ( 'Luca' )
94
+ expect ( queryByTestId ( 'input' ) ) . toHaveDisplayValue ( / L u c / )
62
95
63
96
queryByTestId ( 'input' ) . value = 'Piero'
64
97
expect ( queryByTestId ( 'input' ) ) . toHaveDisplayValue ( 'Piero' )
@@ -72,6 +105,7 @@ test('it should work with textarea elements', () => {
72
105
expect ( queryByTestId ( 'textarea-example' ) ) . toHaveDisplayValue (
73
106
'An example description here.' ,
74
107
)
108
+ expect ( queryByTestId ( 'textarea-example' ) ) . toHaveDisplayValue ( / e x a m p l e / )
75
109
76
110
queryByTestId ( 'textarea-example' ) . value = 'Another example'
77
111
expect ( queryByTestId ( 'textarea-example' ) ) . toHaveDisplayValue (
0 commit comments