fix(search): tighten mock type cast for better type safety

Replace `as any` cast with `as unknown as ReturnType<typeof createMeiliClient>`
in the mock client factory. This preserves type safety without requiring the mock
to implement the full SDK interface.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-27 23:53:32 +05:30
parent dfa289d6b8
commit 1d6e1fb4da
4 changed files with 1258 additions and 7 deletions
+5 -1
View File
@@ -69,7 +69,11 @@
"Bash(npx jest *)",
"Bash(pnpm --filter @tower/worker test -- --testPathPattern=forward)",
"Bash(pnpm --filter @tower/worker test -- forward.processor.test.ts)",
"Bash(npm test *)"
"Bash(npm test *)",
"Bash(grep -v \"^$\")",
"Bash(npm info *)",
"Bash(pnpm --filter @tower/search test)",
"Bash(pnpm --filter @tower/search build)"
]
}
}
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -4,6 +4,7 @@ import {
indexMessage,
deleteMessage,
MeiliDocument,
createMeiliClient,
} from './index';
function makeMockClient() {
@@ -15,7 +16,7 @@ function makeMockClient() {
addDocuments: mockAddDocuments,
deleteDocument: mockDeleteDocument,
});
return { client: { index: mockIndex } as any, mockIndex, mockUpdateSettings, mockAddDocuments, mockDeleteDocument };
return { client: { index: mockIndex } as unknown as ReturnType<typeof createMeiliClient>, mockIndex, mockUpdateSettings, mockAddDocuments, mockDeleteDocument };
}
describe('MESSAGES_INDEX', () => {
+32 -5
View File
@@ -80,7 +80,7 @@ importers:
version: 6.19.3(typescript@5.9.3)
ts-jest:
specifier: ^29.0.0
version: 29.4.11(@babel/core@7.29.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.7))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.19.19))(typescript@5.9.3)
version: 29.4.11(@babel/core@7.29.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.7))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.19.19)(ts-node@10.9.2(@types/node@22.19.19)(typescript@5.9.3)))(typescript@5.9.3)
typescript:
specifier: ^5.7.0
version: 5.9.3
@@ -135,7 +135,7 @@ importers:
version: 4.3.0
ts-jest:
specifier: ^29.0.0
version: 29.4.11(@babel/core@7.29.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.7))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.19.19))(typescript@5.9.3)
version: 29.4.11(@babel/core@7.29.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.7))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.19.19)(ts-node@10.9.2(@types/node@22.19.19)(typescript@5.9.3)))(typescript@5.9.3)
typescript:
specifier: ^5.7.0
version: 5.9.3
@@ -190,7 +190,7 @@ importers:
version: 6.19.3(typescript@5.9.3)
ts-jest:
specifier: ^29.0.0
version: 29.4.11(@babel/core@7.29.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.7))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.19.19))(typescript@5.9.3)
version: 29.4.11(@babel/core@7.29.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.7))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.19.19)(ts-node@10.9.2(@types/node@22.19.19)(typescript@5.9.3)))(typescript@5.9.3)
ts-node:
specifier: ^10.9.0
version: 10.9.2(@types/node@22.19.19)(typescript@5.9.3)
@@ -212,7 +212,7 @@ importers:
version: 29.7.0(@types/node@22.19.19)(ts-node@10.9.2(@types/node@22.19.19)(typescript@5.9.3))
ts-jest:
specifier: ^29.0.0
version: 29.4.11(@babel/core@7.29.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.7))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.19.19))(typescript@5.9.3)
version: 29.4.11(@babel/core@7.29.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.7))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.19.19)(ts-node@10.9.2(@types/node@22.19.19)(typescript@5.9.3)))(typescript@5.9.3)
typescript:
specifier: ^5.7.0
version: 5.9.3
@@ -239,6 +239,28 @@ importers:
specifier: ^5.7.0
version: 5.9.3
packages/search:
dependencies:
meilisearch:
specifier: ^0.44.0
version: 0.44.1
devDependencies:
'@types/jest':
specifier: ^29.0.0
version: 29.5.14
'@types/node':
specifier: ^22.0.0
version: 22.19.19
jest:
specifier: ^29.0.0
version: 29.7.0(@types/node@22.19.19)(ts-node@10.9.2(@types/node@22.19.19)(typescript@5.9.3))
ts-jest:
specifier: ^29.0.0
version: 29.4.11(@babel/core@7.29.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.7))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.19.19)(ts-node@10.9.2(@types/node@22.19.19)(typescript@5.9.3)))(typescript@5.9.3)
typescript:
specifier: ^5.7.0
version: 5.9.3
packages/types:
devDependencies:
typescript:
@@ -2759,6 +2781,9 @@ packages:
resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==}
engines: {node: '>= 0.8'}
meilisearch@0.44.1:
resolution: {integrity: sha512-ZTZYBmomtRwjaWbvU8U8ct04g/YnrNOlvchogJOPgHcQIQBfjdbAvMJ8mLhuZEzpioYXIT6Cv+FcE150pc2+nw==}
memfs@3.5.3:
resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==}
engines: {node: '>= 4.0.0'}
@@ -6588,6 +6613,8 @@ snapshots:
media-typer@1.1.0: {}
meilisearch@0.44.1: {}
memfs@3.5.3:
dependencies:
fs-monkey: 1.1.0
@@ -7354,7 +7381,7 @@ snapshots:
dependencies:
punycode: 2.3.1
ts-jest@29.4.11(@babel/core@7.29.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.7))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.19.19))(typescript@5.9.3):
ts-jest@29.4.11(@babel/core@7.29.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.29.7))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.19.19)(ts-node@10.9.2(@types/node@22.19.19)(typescript@5.9.3)))(typescript@5.9.3):
dependencies:
bs-logger: 0.2.6
fast-json-stable-stringify: 2.1.0