Repository navigation
Commit 931b294
committed
test(mock): judge plain data through the owner
The two mock files each kept a private isPlainObject that accepted any non-null, non-array object, beside the engine's owner in src/plain-data.ts, which also refuses a foreign prototype. Both copies go and both files import the owner; its predicate type is the type the mock's Json alias names, so no wrapper or cast is needed.
A live_state seed can carry a foreign prototype after all: the yaml parser turns !!timestamp into a Date and !!set into a Set, and the schema passes them through as unknown. Under the owner such a seed replaces like a scalar, as the engine treats the same tag in a settings file, where the copies spread it into an empty mapping.
deepMerge assigned out[key], so a seed key spelled __proto__ set the merged object's prototype, and under the stricter predicate reslugRepo then skipped that owner mapping. It now reads through own and writes through put from the same owner, and a test pins the seed as data with the owner still reslugged.1 parent 858c7cd commit 931b294
3 files changed
Lines changed: 17 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
8 | 9 | | |
9 | 10 | | |
10 | | - | |
| 11 | + | |
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
| |||
19 | 20 | | |
20 | 21 | | |
21 | 22 | | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | 23 | | |
27 | 24 | | |
28 | 25 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
| 36 | + | |
36 | 37 | | |
37 | 38 | | |
38 | 39 | | |
| |||
209 | 210 | | |
210 | 211 | | |
211 | 212 | | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
212 | 224 | | |
213 | 225 | | |
214 | 226 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
12 | 13 | | |
13 | 14 | | |
14 | 15 | | |
| |||
380 | 381 | | |
381 | 382 | | |
382 | 383 | | |
383 | | - | |
384 | | - | |
385 | | - | |
386 | | - | |
387 | 384 | | |
388 | 385 | | |
389 | 386 | | |
| |||
418 | 415 | | |
419 | 416 | | |
420 | 417 | | |
421 | | - | |
422 | | - | |
| 418 | + | |
| 419 | + | |
423 | 420 | | |
424 | 421 | | |
425 | 422 | | |
| |||
0 commit comments