Commit 4fcea59
authored
fix(hooks): Always recompute decision after resolution of ready promise (#91)
Summary:
Fix the following bug: when client is initialized with datafile, and no SDK key, OptimizelyExperiment and OptimizelyFeature components don't properly render their decisions.
The issue is in the implementation in hooks and the interaction with the client's ready state (via isReady/onReady). When initialized with datafile, the client begins in a non-ready state, but immediately becomes ready on the next tick. But the hook does not recompute the decision when this occurs - it's only recomputing the decision when a CONFIG_UPDATE is fired. CONFIG_UPDATE is never fired when the instance was initialized with datafile only.
To fix, add an effect in the useFeature/useExperiment hooks that recomputes the decision after the client becomes ready.
Test plan:
- Manual testing
- Updated unit tests1 parent 097e675 commit 4fcea59
4 files changed
Lines changed: 149 additions & 125 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
76 | 76 | | |
77 | 77 | | |
78 | 78 | | |
79 | | - | |
80 | 79 | | |
81 | 80 | | |
82 | 81 | | |
| |||
101 | 100 | | |
102 | 101 | | |
103 | 102 | | |
104 | | - | |
105 | 103 | | |
106 | 104 | | |
107 | 105 | | |
| |||
121 | 119 | | |
122 | 120 | | |
123 | 121 | | |
124 | | - | |
| 122 | + | |
125 | 123 | | |
126 | | - | |
127 | 124 | | |
128 | 125 | | |
129 | 126 | | |
| |||
144 | 141 | | |
145 | 142 | | |
146 | 143 | | |
147 | | - | |
| 144 | + | |
148 | 145 | | |
149 | | - | |
150 | 146 | | |
151 | 147 | | |
152 | 148 | | |
| |||
212 | 208 | | |
213 | 209 | | |
214 | 210 | | |
215 | | - | |
| 211 | + | |
216 | 212 | | |
217 | | - | |
218 | 213 | | |
219 | 214 | | |
220 | 215 | | |
| |||
237 | 232 | | |
238 | 233 | | |
239 | 234 | | |
240 | | - | |
| 235 | + | |
241 | 236 | | |
242 | | - | |
243 | 237 | | |
244 | 238 | | |
245 | 239 | | |
| |||
285 | 279 | | |
286 | 280 | | |
287 | 281 | | |
288 | | - | |
| 282 | + | |
289 | 283 | | |
290 | | - | |
291 | 284 | | |
292 | 285 | | |
293 | 286 | | |
| |||
298 | 291 | | |
299 | 292 | | |
300 | 293 | | |
301 | | - | |
302 | 294 | | |
303 | 295 | | |
304 | 296 | | |
305 | 297 | | |
| 298 | + | |
306 | 299 | | |
307 | 300 | | |
308 | 301 | | |
| |||
324 | 317 | | |
325 | 318 | | |
326 | 319 | | |
327 | | - | |
328 | 320 | | |
329 | | - | |
330 | | - | |
| 321 | + | |
| 322 | + | |
331 | 323 | | |
332 | 324 | | |
333 | 325 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
79 | 79 | | |
80 | 80 | | |
81 | 81 | | |
82 | | - | |
83 | 82 | | |
84 | 83 | | |
85 | 84 | | |
| |||
106 | 105 | | |
107 | 106 | | |
108 | 107 | | |
109 | | - | |
110 | 108 | | |
111 | 109 | | |
112 | 110 | | |
| |||
133 | 131 | | |
134 | 132 | | |
135 | 133 | | |
136 | | - | |
137 | 134 | | |
138 | 135 | | |
139 | 136 | | |
| |||
160 | 157 | | |
161 | 158 | | |
162 | 159 | | |
163 | | - | |
164 | 160 | | |
165 | 161 | | |
166 | 162 | | |
| |||
185 | 181 | | |
186 | 182 | | |
187 | 183 | | |
188 | | - | |
189 | 184 | | |
190 | 185 | | |
191 | 186 | | |
| |||
212 | 207 | | |
213 | 208 | | |
214 | 209 | | |
215 | | - | |
216 | 210 | | |
217 | | - | |
218 | 211 | | |
219 | 212 | | |
220 | 213 | | |
| |||
232 | 225 | | |
233 | 226 | | |
234 | 227 | | |
| 228 | + | |
235 | 229 | | |
236 | 230 | | |
237 | 231 | | |
| |||
257 | 251 | | |
258 | 252 | | |
259 | 253 | | |
260 | | - | |
261 | 254 | | |
262 | 255 | | |
263 | 256 | | |
| |||
304 | 297 | | |
305 | 298 | | |
306 | 299 | | |
307 | | - | |
308 | 300 | | |
309 | 301 | | |
310 | 302 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
147 | 147 | | |
148 | 148 | | |
149 | 149 | | |
150 | | - | |
| 150 | + | |
151 | 151 | | |
| 152 | + | |
152 | 153 | | |
153 | 154 | | |
154 | 155 | | |
155 | 156 | | |
156 | 157 | | |
157 | 158 | | |
| 159 | + | |
158 | 160 | | |
159 | 161 | | |
160 | 162 | | |
161 | | - | |
162 | | - | |
163 | | - | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
164 | 168 | | |
165 | 169 | | |
166 | 170 | | |
| |||
243 | 247 | | |
244 | 248 | | |
245 | 249 | | |
246 | | - | |
| 250 | + | |
247 | 251 | | |
248 | 252 | | |
249 | 253 | | |
| |||
266 | 270 | | |
267 | 271 | | |
268 | 272 | | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
269 | 276 | | |
270 | | - | |
271 | | - | |
272 | | - | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
273 | 281 | | |
274 | 282 | | |
275 | 283 | | |
| |||
380 | 388 | | |
381 | 389 | | |
382 | 390 | | |
383 | | - | |
| 391 | + | |
| 392 | + | |
384 | 393 | | |
| 394 | + | |
385 | 395 | | |
386 | 396 | | |
387 | 397 | | |
388 | 398 | | |
389 | 399 | | |
390 | 400 | | |
| 401 | + | |
391 | 402 | | |
392 | 403 | | |
393 | 404 | | |
394 | | - | |
395 | | - | |
396 | | - | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
397 | 411 | | |
398 | 412 | | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
399 | 421 | | |
400 | 422 | | |
401 | 423 | | |
| |||
480 | 502 | | |
481 | 503 | | |
482 | 504 | | |
483 | | - | |
| 505 | + | |
484 | 506 | | |
485 | 507 | | |
486 | 508 | | |
| |||
503 | 525 | | |
504 | 526 | | |
505 | 527 | | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
506 | 531 | | |
507 | | - | |
508 | | - | |
509 | | - | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
510 | 536 | | |
511 | 537 | | |
512 | 538 | | |
| |||
0 commit comments