Commit 9bf2eeb
committed
fix(qa/dogfood): showcase 端点 fixture 显式声明它不携带 functions,而不是靠 JSON.stringify 偷偷丢掉
`showcase-declarative-endpoints.dogfood.test.ts` 用
`JSON.stringify(showcaseStack)` 手搓一份 artifact 顶替 `objectstack build`,
但只做了后者的一半:真实构建先跑 `lowerCallables` 把每个 callable 换成字符串
ref,并把函数本体放进 sibling ESM 模块;`JSON.stringify` 没有这一步,它只是把
函数值的键整个省略。
于是这份 artifact 从来就没携带过 showcase 的任何 function —— 它只是"看起来"
携带了:裸条目(`sweepProjectHealth: fn`)连键一起消失,剩下 `functions: {}`,
照样 parse 通过。两个函数都被静默丢弃,没人看得见。
showcase 换成诚实的声明形之后这份静默就破了:`{ handler: fn, effect: 'writes' }`
会保留对象、只丢 `handler`,留下 `{ effect: 'writes' }` —— 一个为自己并不携带
的函数声明了 effect 的条目,`FlowFunctionEntrySchema` 四个成员一致拒收,完全
正确。
改为显式剔除 `functions` 并写明原因:本 boot 真正运行的函数来自交给
`bootStack` 的**活栈**,不来自这个文件;该文件的职责是把 `apis:` 块喂给
`MetadataPlugin`。静默丢失变成声明式省略。1 parent 375ded2 commit 9bf2eeb
1 file changed
Lines changed: 21 additions & 1 deletion
Lines changed: 21 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
103 | 103 | | |
104 | 104 | | |
105 | 105 | | |
106 | | - | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
107 | 127 | | |
108 | 128 | | |
109 | 129 | | |
| |||
0 commit comments