@@ -27,7 +27,7 @@ describe('children patch (browser)', () => {
27
27
} )
28
28
} )
29
29
30
- test ( 'Loading /patch and keep ' , async ( ) => {
30
+ test ( 'Loading /patch and keep' , async ( ) => {
31
31
page = await browser . page ( url ( '/patch' ) )
32
32
33
33
const h1 = await page . $text ( 'h1' )
@@ -37,86 +37,119 @@ describe('children patch (browser)', () => {
37
37
dates . patch = await page . $text ( '[data-date-patch]' )
38
38
} )
39
39
40
- test ( 'Navigate to /patch/1' , async ( ) => {
41
- const { hook } = await page . nuxt . navigate ( '/patch/1' , false )
42
- await hook
40
+ describe ( 'refresh child component if param changed' , ( ) => {
41
+ test ( 'Navigate to /patch/1' , async ( ) => {
42
+ const { hook } = await page . nuxt . navigate ( '/patch/1' , false )
43
+ await hook
43
44
44
- const h2 = await page . $text ( 'h2' )
45
- expect ( h2 . includes ( '_id:' ) ) . toBe ( true )
46
- dates . id = await page . $text ( '[data-date-id]' )
45
+ const h2 = await page . $text ( 'h2' )
46
+ expect ( h2 . includes ( '_id:' ) ) . toBe ( true )
47
+ dates . id = await page . $text ( '[data-date-id]' )
47
48
48
- expect ( dates . patch ) . toBe ( await page . $text ( '[data-date-patch]' ) )
49
- } )
49
+ expect ( dates . patch ) . toBe ( await page . $text ( '[data-date-patch]' ) )
50
+ } )
50
51
51
- test ( 'Navigate to /patch/2' , async ( ) => {
52
- await page . nuxt . navigate ( '/patch/2' )
53
- const date = await page . $text ( '[data-date-id]' )
52
+ test ( 'Navigate to /patch/2' , async ( ) => {
53
+ await page . nuxt . navigate ( '/patch/2' )
54
+ const date = await page . $text ( '[data-date-id]' )
54
55
55
- expect ( await page . $text ( 'h3' ) ) . toBe ( 'Index' )
56
- expect ( dates . patch ) . toBe ( await page . $text ( '[data-date-patch]' ) )
57
- expect ( + dates . id < + date ) . toBe ( true )
58
- dates . id = date
56
+ expect ( await page . $text ( 'h3' ) ) . toBe ( 'Index' )
57
+ expect ( dates . patch ) . toBe ( await page . $text ( '[data-date-patch]' ) )
58
+ expect ( + dates . id < + date ) . toBe ( true )
59
+ dates . id = date
60
+ } )
59
61
} )
60
62
61
- test ( 'Navigate to /patch/2?test=true' , async ( ) => {
62
- await page . nuxt . navigate ( '/patch/2?test=true' )
63
- expect ( dates . patch ) . toBe ( await page . $text ( '[data-date-patch]' ) )
64
- expect ( dates . id ) . toBe ( await page . $text ( '[data-date-id]' ) )
65
- } )
63
+ describe ( 'resue component if only query is changed' , ( ) => {
64
+ test ( 'Navigate to /patch/2?test=true' , async ( ) => {
65
+ await page . nuxt . navigate ( '/patch/2?test=true' )
66
+ expect ( dates . patch ) . toBe ( await page . $text ( '[data-date-patch]' ) )
67
+ expect ( dates . id ) . toBe ( await page . $text ( '[data-date-id]' ) )
68
+ } )
66
69
67
- test ( 'Navigate to /patch/2#test' , async ( ) => {
68
- await page . nuxt . navigate ( '/patch/2#test' )
69
- expect ( dates . patch ) . toBe ( await page . $text ( '[data-date-patch]' ) )
70
- expect ( dates . id ) . toBe ( await page . $text ( '[data-date-id]' ) )
70
+ test ( 'Navigate to /patch/2#test' , async ( ) => {
71
+ await page . nuxt . navigate ( '/patch/2#test' )
72
+ expect ( dates . patch ) . toBe ( await page . $text ( '[data-date-patch]' ) )
73
+ expect ( dates . id ) . toBe ( await page . $text ( '[data-date-id]' ) )
74
+ } )
71
75
} )
72
76
73
- test ( 'Navigate to /patch/2/child' , async ( ) => {
74
- await page . nuxt . navigate ( '/patch/2/child' )
75
- dates . child = await page . $text ( '[data-date-child]' )
76
- dates . slug = await page . $text ( '[data-date-child-slug]' )
77
+ describe ( 'refresh child component if param is changed' , ( ) => {
78
+ test ( 'Navigate to /patch/2/child' , async ( ) => {
79
+ await page . nuxt . navigate ( '/patch/2/child' )
80
+ dates . child = await page . $text ( '[data-date-child]' )
81
+ dates . slug = await page . $text ( '[data-date-child-slug]' )
77
82
78
- expect ( dates . patch ) . toBe ( await page . $text ( '[data-date-patch]' ) )
79
- expect ( dates . id ) . toBe ( await page . $text ( '[data-date-id]' ) )
80
- expect ( + dates . child > + dates . id ) . toBe ( true )
81
- expect ( + dates . slug > + dates . child ) . toBe ( true )
82
- } )
83
+ expect ( dates . patch ) . toBe ( await page . $text ( '[data-date-patch]' ) )
84
+ expect ( dates . id ) . toBe ( await page . $text ( '[data-date-id]' ) )
85
+ expect ( + dates . child > + dates . id ) . toBe ( true )
86
+ expect ( + dates . slug > + dates . child ) . toBe ( true )
87
+ } )
83
88
84
- test ( 'Navigate to /patch/2/child/1' , async ( ) => {
85
- await page . nuxt . navigate ( '/patch/2/child/1' )
86
- const date = await page . $text ( '[data-date-child-slug]' )
89
+ test ( 'Navigate to /patch/2/child/1' , async ( ) => {
90
+ await page . nuxt . navigate ( '/patch/2/child/1' )
91
+ const date = await page . $text ( '[data-date-child-slug]' )
87
92
88
- expect ( dates . patch ) . toBe ( await page . $text ( '[data-date-patch]' ) )
89
- expect ( dates . id ) . toBe ( await page . $text ( '[data-date-id]' ) )
90
- expect ( dates . child ) . toBe ( await page . $text ( '[data-date-child]' ) )
91
- expect ( + date > + dates . slug ) . toBe ( true )
92
- dates . slug = date
93
- } )
93
+ expect ( dates . patch ) . toBe ( await page . $text ( '[data-date-patch]' ) )
94
+ expect ( dates . id ) . toBe ( await page . $text ( '[data-date-id]' ) )
95
+ expect ( dates . child ) . toBe ( await page . $text ( '[data-date-child]' ) )
96
+ expect ( + date > + dates . slug ) . toBe ( true )
97
+ dates . slug = date
98
+ } )
94
99
95
- test ( 'Navigate to /patch/2/child/1?foo=bar' , async ( ) => {
96
- await page . nuxt . navigate ( '/patch/2/child/1?foo=bar' )
100
+ test ( 'Navigate to /patch/2/child/1?foo=bar' , async ( ) => {
101
+ await page . nuxt . navigate ( '/patch/2/child/1?foo=bar' )
97
102
98
- expect ( dates . patch ) . toBe ( await page . $text ( '[data-date-patch]' ) )
99
- expect ( dates . id ) . toBe ( await page . $text ( '[data-date-id]' ) )
100
- expect ( dates . child ) . toBe ( await page . $text ( '[data-date-child]' ) )
101
- expect ( dates . slug ) . toBe ( await page . $text ( '[data-date-child-slug]' ) )
103
+ expect ( dates . patch ) . toBe ( await page . $text ( '[data-date-patch]' ) )
104
+ expect ( dates . id ) . toBe ( await page . $text ( '[data-date-id]' ) )
105
+ expect ( dates . child ) . toBe ( await page . $text ( '[data-date-child]' ) )
106
+ expect ( dates . slug ) . toBe ( await page . $text ( '[data-date-child-slug]' ) )
107
+ } )
108
+
109
+ test ( 'Search a country' , async ( ) => {
110
+ const countries = await page . $$text ( '[data-test-search-result]' )
111
+ expect ( countries . length ) . toBe ( 5 )
112
+
113
+ await page . type ( '[data-test-search-input]' , 'gu' )
114
+
115
+ await waitFor ( 250 )
116
+ const newCountries = await page . $$text ( '[data-test-search-result]' , true )
117
+ expect ( newCountries . length ) . toBe ( 1 )
118
+ expect ( newCountries ) . toEqual ( [ 'Guinea' ] )
119
+ expect ( await page . nuxt . routeData ( ) ) . toEqual ( {
120
+ path : '/patch/2/child/1' ,
121
+ query : {
122
+ foo : 'bar' ,
123
+ q : 'gu'
124
+ }
125
+ } )
126
+ } )
102
127
} )
103
128
104
- test ( 'Search a country' , async ( ) => {
105
- const countries = await page . $$text ( '[data-test-search-result]' )
106
- expect ( countries . length ) . toBe ( 5 )
107
-
108
- await page . type ( '[data-test-search-input]' , 'gu' )
109
-
110
- await waitFor ( 250 )
111
- const newCountries = await page . $$text ( '[data-test-search-result]' , true )
112
- expect ( newCountries . length ) . toBe ( 1 )
113
- expect ( newCountries ) . toEqual ( [ 'Guinea' ] )
114
- expect ( await page . nuxt . routeData ( ) ) . toEqual ( {
115
- path : '/patch/2/child/1' ,
116
- query : {
117
- foo : 'bar' ,
118
- q : 'gu'
119
- }
129
+ describe ( 'reuse child component if param is changed but watchParam is false' , ( ) => {
130
+ test ( 'Navigate to /patch/2/reuse' , async ( ) => {
131
+ await page . nuxt . navigate ( '/patch/2/reuse' )
132
+ dates . slug = await page . $text ( '[data-date-slug]' )
133
+
134
+ expect ( dates . patch ) . toBe ( await page . $text ( '[data-date-patch]' ) )
135
+ expect ( dates . id ) . toBe ( await page . $text ( '[data-date-id]' ) )
136
+ expect ( + dates . child > + dates . id ) . toBe ( true )
137
+ } )
138
+
139
+ test ( 'Navigate to /patch/2/reuse/1' , async ( ) => {
140
+ await page . nuxt . navigate ( '/patch/2/reuse/1' )
141
+
142
+ expect ( dates . patch ) . toBe ( await page . $text ( '[data-date-patch]' ) )
143
+ expect ( dates . id ) . toBe ( await page . $text ( '[data-date-id]' ) )
144
+ expect ( dates . slug ) . toBe ( await page . $text ( '[data-date-slug]' ) )
145
+ } )
146
+
147
+ test ( 'Navigate to /patch/2/reuse/2' , async ( ) => {
148
+ await page . nuxt . navigate ( '/patch/2/reuse/2' )
149
+
150
+ expect ( dates . patch ) . toBe ( await page . $text ( '[data-date-patch]' ) )
151
+ expect ( dates . id ) . toBe ( await page . $text ( '[data-date-id]' ) )
152
+ expect ( dates . slug ) . toBe ( await page . $text ( '[data-date-slug]' ) )
120
153
} )
121
154
} )
122
155
0 commit comments