QA验收 #1 » bff-final-case-results.md
QA 测试结果 - BFF日期兼容修复后全量独立回归 - 2026-10-07
候选:cb70aee75e7230ea6eb57a2203021c403f1dccfb及未提交修复,adapter源码SHA25615bf6cbd4389fa97d863899680b0419f9fc1b647356c70459e5ca7d7ad83b5d7。QA独立npm test -- --verbose --json --outputFile=bff-final-results.json;9 suites127/127 Pass。pg-mem/mock Notification单元环境,不冒充真实PG(真实PG另见HTTP第4轮34/34)。前置:test配置/合成身份;每行操作为执行具名断言,预期全部断言成立,实际Pass表示成立。包含naive微秒/offset/Z保持原值及非法日期拒绝。
| ID | 用例/操作与预期 | 实际 | 证据/层级/源码 |
|---|---|---|---|
| BFF-FINAL-001 | HTTP channel flow runs health checks and Swagger,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-002 | HTTP channel flow logs in using wx.login code without leaking WeChat identifiers or session_key,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-003 | HTTP channel flow rejects forged login identity fields,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-004 | HTTP channel flow distinguishes missing session from missing contact binding,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-005 | HTTP channel flow binds a WeChat-verified phone then resolves contact server-side,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-006 | HTTP channel flow returns 503 without connection details when the channel database is unavailable,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-007 | HTTP channel flow clears contact on phone change and rejects stale contact resolver responses,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-008 | HTTP channel flow submits a verified email and business card and queues the review notification,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-009 | HTTP channel flow rejects a spoofed business-card MIME type,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-010 | HTTP channel flow invalidates binding if NDB no longer resolves the contact,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-011 | HTTP channel flow projects public meetings without private links or Task data,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-012 | HTTP channel flow returns the NDB-derived meeting banners without authentication,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-013 | HTTP channel flow forwards validated date and month calendar filters to NDB,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-014 | HTTP channel flow serves the V2 content, topic and public expert catalog without private fields,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-015 | HTTP channel flow derives a unique industry list from the public V2 catalog,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-016 | HTTP channel flow creates an expert interview request from the authenticated bound contact,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-017 | HTTP channel flow rejects an invalid interview idempotency key before calling NDB,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-018 | HTTP channel flow returns my meetings from NDB using bound contact,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-019 | HTTP channel flow forwards user idempotency key and derives contact from session,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-020 | HTTP channel flow cancels via NDB and keeps local finance absent,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-021 | HTTP channel flow keeps favorites and reminder preferences separate from registration/Task calls,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-022 | HTTP channel flow uses unified NDB minutes GET, PUT and mine DTOs without financial state or attend mutations,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-023 | HTTP channel flow projects one registration and Task across minutes-only, both intents, and attendance cancellation,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-024 | HTTP channel flow returns null from NDB despite a legacy minutes preference,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-025 | HTTP channel flow requires authenticated bound identity, validates keys, and refuses cancellation on /api/v2/meetings/1/minutes-subscription,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-026 | HTTP channel flow requires authenticated bound identity, validates keys, and refuses cancellation on /api/v2/notifications/subscriptions/1/minutes,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-027 | HTTP channel flow rejects a wrong-intent or wrong-owner mine result on /api/v2/meetings/my,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-028 | HTTP channel flow rejects a wrong-intent or wrong-owner mine result on /api/v2/meetings/minutes-reservations/mine,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-029 | HTTP channel flow rejects a wrong-intent or wrong-owner mine result on /api/v2/meetings/my,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-030 | HTTP channel flow passes explicit minutes keys and rejects stale identity and cross-contact upstream responses,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-031 | HTTP channel flow persists one no-contract refusal notice across both minutes paths without masking the rejection,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-032 | HTTP channel flow does not impose BFF time or pricing gates and preserves the NDB human-minutes refusal,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-033 | HTTP channel flow preserves NO_ACTIVE_CONTRACT even if the refusal cannot be persisted,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-034 | HTTP channel flow enforces ownership on favorites and message read operations,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-035 | HTTP channel flow retrieves join link with meeting:join scope only for a bound session,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-036 | HTTP channel flow hides join link on REGISTRATION_REQUIRED,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-037 | HTTP channel flow hides join link on MEETING_NOT_OPEN,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-038 | HTTP channel flow hides join link on JOIN_LINK_UNAVAILABLE,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-039 | HTTP channel flow guides contract errors and upstream downtime without exposing provider messages,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-040 | HTTP channel flow revokes all prior tokens on logout,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-041 | HTTP channel flow rejects expired JWT and legacy conference routes,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/http.spec.ts |
| BFF-FINAL-042 | SQLite source preservation and database guard reads version 1 without upgrading it, preserving identities and defaulting new fields,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/sqlite-import.spec.ts |
| BFF-FINAL-043 | SQLite source preservation and database guard preserves version 3 binary cards, verification state and retry counters,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/sqlite-import.spec.ts |
| BFF-FINAL-044 | SQLite source preservation and database guard refuses an unsupported source version and never creates a missing file,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/sqlite-import.spec.ts |
| BFF-FINAL-045 | SQLite source preservation and database guard rejects missing required source columns rather than inventing identity fields,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/sqlite-import.spec.ts |
| BFF-FINAL-046 | SQLite source preservation and database guard refuses a non-channel connection target,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/sqlite-import.spec.ts |
| BFF-FINAL-047 | SQLite source preservation and database guard refuses a non-channel connection target,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/sqlite-import.spec.ts |
| BFF-FINAL-048 | SQLite source preservation and database guard refuses a non-channel connection target,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/sqlite-import.spec.ts |
| BFF-FINAL-049 | minutes refusal durable outbox marks missing configuration and resumes after restart without changing the refusal identity,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/minutes-outbox.spec.ts |
| BFF-FINAL-050 | minutes refusal durable outbox persists missing service configuration across a retry tick, with no delivery claim,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/minutes-outbox.spec.ts |
| BFF-FINAL-051 | minutes refusal durable outbox retries failures with the same dedup key after restart, applies backoff and honors the minutes recipient,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/minutes-outbox.spec.ts |
| BFF-FINAL-052 | minutes refusal durable outbox deduplicates by meeting/contact across users without merging distinct meetings,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/minutes-outbox.spec.ts |
| BFF-FINAL-053 | minutes refusal durable outbox additively upgrades version 4 without migrating legacy minutes into Tasks or notices,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/minutes-outbox.spec.ts |
| BFF-FINAL-054 | identity state and contact events auto binds an initial or newly added number only after current NDB resolution,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/identity.spec.ts |
| BFF-FINAL-055 | identity state and contact events requires a full application after a WeChat phone change before accepting replacement number,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/identity.spec.ts |
| BFF-FINAL-056 | identity state and contact events blocks proactive auto binding during delayed MQ delivery of a replacement event,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/identity.spec.ts |
| BFF-FINAL-057 | identity state and contact events rejects a later replacement even when the same number was previously fully authenticated,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/identity.spec.ts |
| BFF-FINAL-058 | identity state and contact events does not let an old contact event revoke a newer completed authentication,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/identity.spec.ts |
| BFF-FINAL-059 | identity state and contact events keeps an unmatched application pending, then authorizes it when NDB adds the number,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/identity.spec.ts |
| BFF-FINAL-060 | identity state and contact events handles added and replaced contact events idempotently without undoing later full authentication,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/identity.spec.ts |
| BFF-FINAL-061 | identity state and contact events rejects an application if the verified phone changes away and back during NDB resolution,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/identity.spec.ts |
| BFF-FINAL-062 | identity state and contact events retries review notification submission with the same idempotency key,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/identity.spec.ts |
| BFF-FINAL-063 | WeChat boundary discards session_key and rejects absent openid,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/wechat-storage.spec.ts |
| BFF-FINAL-064 | WeChat boundary maps expired codes and upstream network failure,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/wechat-storage.spec.ts |
| BFF-FINAL-065 | WeChat boundary verifies phone watermark appid before binding,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/wechat-storage.spec.ts |
| BFF-FINAL-066 | WeChat boundary coalesces token acquisition for concurrent phone requests,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/wechat-storage.spec.ts |
| BFF-FINAL-067 | channel-only versioned PostgreSQL SQL contract preserves channel identities and favorite state over migration rerun,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/wechat-storage.spec.ts |
| BFF-FINAL-068 | NDB signature contract uses RFC3986, repeated keys, blanks and lexicographic key/value ordering,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/signature.spec.ts |
| BFF-FINAL-069 | NDB signature contract signs the exact six-line request and exact UTF-8 body,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/signature.spec.ts |
| BFF-FINAL-070 | NDB signature contract matches a vector generated by the existing NDB Python implementation,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/signature.spec.ts |
| BFF-FINAL-071 | NDB signature contract hashes an empty GET body,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/signature.spec.ts |
| BFF-FINAL-072 | NDB signature contract uses collision-safe tuple boundaries for business keys,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/signature.spec.ts |
| BFF-FINAL-073 | configuration and boundary validation accepts configured development,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/signature.spec.ts |
| BFF-FINAL-074 | configuration and boundary validation does not expose submitted secrets in validation errors,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/signature.spec.ts |
| BFF-FINAL-075 | configuration and boundary validation requires safe production configuration {"NDB_BASE_URL": "http://ndb.test"},命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/signature.spec.ts |
| BFF-FINAL-076 | configuration and boundary validation requires safe production configuration {"CHANNEL_DATABASE_URL": "sqlite://memory", "NDB_BASE_URL": "https://ndb.test"},命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/signature.spec.ts |
| BFF-FINAL-077 | configuration and boundary validation rejects non-origin NDB URL ftp://ndb.test,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/signature.spec.ts |
| BFF-FINAL-078 | configuration and boundary validation rejects non-origin NDB URL https://user:password@ndb.test,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/signature.spec.ts |
| BFF-FINAL-079 | configuration and boundary validation rejects non-origin NDB URL https://ndb.test/api,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/signature.spec.ts |
| BFF-FINAL-080 | configuration and boundary validation rejects non-origin NDB URL https://ndb.test/?secret=bad,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/signature.spec.ts |
| BFF-FINAL-081 | configuration and boundary validation rejects ID coercion and invalid idempotency headers,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/signature.spec.ts |
| BFF-FINAL-082 | NDB transport and typed adapter accepts the real NDB envelope and strips Task state,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/ndb-client.spec.ts |
| BFF-FINAL-083 | NDB transport and typed adapter sends a fresh nonce and stable business key for retries,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/ndb-client.spec.ts |
| BFF-FINAL-084 | NDB transport and typed adapter returns original registration on duplicate conflict,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/ndb-client.spec.ts |
| BFF-FINAL-085 | NDB transport and typed adapter fails closed on a cross-contact registration,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/ndb-client.spec.ts |
| BFF-FINAL-086 | NDB transport and typed adapter returns null for no registration,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/ndb-client.spec.ts |
| BFF-FINAL-087 | NDB transport and typed adapter maps MEETING_NOT_OPEN without leaking upstream text,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/ndb-client.spec.ts |
| BFF-FINAL-088 | NDB transport and typed adapter maps NO_ACTIVE_CONTRACT without leaking upstream text,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/ndb-client.spec.ts |
| BFF-FINAL-089 | NDB transport and typed adapter maps AMBIGUOUS_PROJECT without leaking upstream text,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/ndb-client.spec.ts |
| BFF-FINAL-090 | NDB transport and typed adapter maps AMBIGUOUS_CONTRACT without leaking upstream text,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/ndb-client.spec.ts |
| BFF-FINAL-091 | NDB transport and typed adapter maps IDEMPOTENCY_CONFLICT without leaking upstream text,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/ndb-client.spec.ts |
| BFF-FINAL-092 | NDB transport and typed adapter maps upstream authentication 401 as server configuration, not user login,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/ndb-client.spec.ts |
| BFF-FINAL-093 | NDB transport and typed adapter maps upstream authentication 403 as server configuration, not user login,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/ndb-client.spec.ts |
| BFF-FINAL-094 | NDB transport and typed adapter maps upstream availability 429,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/ndb-client.spec.ts |
| BFF-FINAL-095 | NDB transport and typed adapter maps upstream availability 500,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/ndb-client.spec.ts |
| BFF-FINAL-096 | NDB transport and typed adapter maps upstream availability 503,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/ndb-client.spec.ts |
| BFF-FINAL-097 | NDB transport and typed adapter maps network timeout and does not blindly retry writes,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/ndb-client.spec.ts |
| BFF-FINAL-098 | NDB transport and typed adapter rejects an incompatible contract {"data": [Array], "err": 0},命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/ndb-client.spec.ts |
| BFF-FINAL-099 | NDB transport and typed adapter rejects an incompatible contract {"code": 200, "data": [Object]},命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/ndb-client.spec.ts |
| BFF-FINAL-100 | NDB transport and typed adapter requires the confirmed public detail fields and excludes private expert data,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/ndb-client.spec.ts |
| BFF-FINAL-101 | NDB transport and typed adapter reads the server-derived banner list with the conference read scope,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/ndb-client.spec.ts |
| BFF-FINAL-102 | NDB transport and typed adapter maps an application-owned meeting miss to NOT_FOUND,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/ndb-client.spec.ts |
| BFF-FINAL-103 | NDB transport and typed adapter refuses paths and scopes outside application credentials,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/ndb-client.spec.ts |
| BFF-FINAL-104 | NDB transport and typed adapter validates catalog contracts and derives a stable interview idempotency key,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/ndb-client.spec.ts |
| BFF-FINAL-105 | NDB transport and typed adapter deduplicates industries exposed by all public catalog collections,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/ndb-client.spec.ts |
| BFF-FINAL-106 | NDB minutes business adapter uses a separate stable business key, fresh nonces and only the verified contact payload,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/minutes-adapter.spec.ts |
| BFF-FINAL-107 | NDB minutes business adapter preserves the NDB timestamp 2026-10-07T00:26:08.883534 for both business intents,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/minutes-adapter.spec.ts |
| BFF-FINAL-108 | NDB minutes business adapter preserves the NDB timestamp 2026-10-07T00:26:08 for both business intents,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/minutes-adapter.spec.ts |
| BFF-FINAL-109 | NDB minutes business adapter preserves the NDB timestamp 2026-10-07T00:26:08.883534Z for both business intents,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/minutes-adapter.spec.ts |
| BFF-FINAL-110 | NDB minutes business adapter preserves the NDB timestamp 2026-10-07T00:26:08.883534+08:00 for both business intents,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/minutes-adapter.spec.ts |
| BFF-FINAL-111 | NDB minutes business adapter continues rejecting invalid registration timestamps 2026-02-30T00:26:08.883534,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/minutes-adapter.spec.ts |
| BFF-FINAL-112 | NDB minutes business adapter continues rejecting invalid registration timestamps 2026-10-07T24:26:08,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/minutes-adapter.spec.ts |
| BFF-FINAL-113 | NDB minutes business adapter continues rejecting invalid registration timestamps 2026-10-07T00:60:08,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/minutes-adapter.spec.ts |
| BFF-FINAL-114 | NDB minutes business adapter continues rejecting invalid registration timestamps 2026-10-07,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/minutes-adapter.spec.ts |
| BFF-FINAL-115 | NDB minutes business adapter continues rejecting invalid registration timestamps garbage,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/minutes-adapter.spec.ts |
| BFF-FINAL-116 | NDB minutes business adapter rejects malformed or cross-owner business facts {"meeting_id": 2},命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/minutes-adapter.spec.ts |
| BFF-FINAL-117 | NDB minutes business adapter rejects malformed or cross-owner business facts {"client_contact_id": 21},命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/minutes-adapter.spec.ts |
| BFF-FINAL-118 | NDB minutes business adapter rejects malformed or cross-owner business facts {"task_id": null},命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/minutes-adapter.spec.ts |
| BFF-FINAL-119 | NDB minutes business adapter rejects malformed or cross-owner business facts {"minutes_requested": false},命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/minutes-adapter.spec.ts |
| BFF-FINAL-120 | NDB minutes business adapter rejects malformed or cross-owner business facts {"created_at": "invalid"},命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/minutes-adapter.spec.ts |
| BFF-FINAL-121 | NDB minutes business adapter returns authoritative null and read scope for state without writes,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/minutes-adapter.spec.ts |
| BFF-FINAL-122 | NDB minutes business adapter projects attend-only as no minutes and retains minutes when attendance is cancelled,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/minutes-adapter.spec.ts |
| BFF-FINAL-123 | NDB minutes business adapter maps published human-minutes and no-contract refusals without rewriting them,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/minutes-adapter.spec.ts |
| BFF-FINAL-124 | NDB minutes business adapter does not automatically retry a timed-out business mutation,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/minutes-adapter.spec.ts |
| BFF-FINAL-125 | renderMiniProgramRichText converts Markdown into HTML supported by the mini program rich-text component,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/rich-text.spec.ts |
| BFF-FINAL-126 | renderMiniProgramRichText keeps legacy HTML while removing unsafe markup and attributes,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/rich-text.spec.ts |
| BFF-FINAL-127 | renderMiniProgramRichText rejects unsafe links,命名行为断言应成立 | Pass | bff-final-results.json;单元/模拟;test/rich-text.spec.ts |