From 75bcc4f4cb2c75c990fde102859010ca910bbe57 Mon Sep 17 00:00:00 2001 From: Claude Fable 5 Date: Sat, 8 Aug 2026 03:47:11 +0000 Subject: [PATCH] =?UTF-8?q?test(metadata):=20mock=20driver=20=E7=9A=84=20s?= =?UTF-8?q?upports=20=E6=94=B6=E6=95=9B=E4=B8=BA=E7=A9=BA=E5=B9=BF?= =?UTF-8?q?=E5=91=8A=20(#4782)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit database-loader.test.ts 的 mock driver 把九个 off-spec 键写进 `supports`: 四个已被 #4634 退役并 tombstone 为 `never`(transactions/joins/streaming/ fullTextSearch),另外五个从来就不是 `DriverCapabilitiesSchema` 的键 (aggregations/bulkOperations/nestedObjects/geoQueries/changeStreams)。 没有任何读者,唯一效果是被下一个照抄 mock 的作者复制。 `DriverCapabilities` 的每一位都是 optional,所以空广告即合法广告 (spec 侧 driver.test.ts 已有 `supports: {}` 的对照用例)。 Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01KDU3qAuJyajAQm3GkUXdfA --- .../src/loaders/database-loader.test.ts | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/packages/metadata/src/loaders/database-loader.test.ts b/packages/metadata/src/loaders/database-loader.test.ts index 1579c1d23c..5d69513c32 100644 --- a/packages/metadata/src/loaders/database-loader.test.ts +++ b/packages/metadata/src/loaders/database-loader.test.ts @@ -37,17 +37,16 @@ function createMockDriver(): IDataDriver { return { name: 'mock', version: '1.0.0', - supports: { - transactions: false, - joins: false, - aggregations: false, - streaming: false, - bulkOperations: true, - nestedObjects: false, - fullTextSearch: false, - geoQueries: false, - changeStreams: false, - }, + // An empty advertisement is a legal advertisement: every bit in + // `DriverCapabilities` is optional, and this mock needs none of the three + // that survive (#4782). The block used to spell nine — four RETIRED by + // #4634 (`transactions`/`joins`/`streaming`/`fullTextSearch`, now + // tombstoned as `never`) and five that were never keys of + // `DriverCapabilitiesSchema` at all (`aggregations`/`bulkOperations`/ + // `nestedObjects`/`geoQueries`/`changeStreams`). Nothing here read any of + // them; their only effect was to be copied into the next mock. Capability + // is METHOD presence, not a boolean — do not re-add bits here. + supports: {}, connect: vi.fn().mockResolvedValue(undefined), disconnect: vi.fn().mockResolvedValue(undefined),