@memofs/testing
v1.3.0-beta.2
Published
Shared contract tests, fixtures, and fakes for MemoFS packages.
Maintainers
Readme
@memofs/testing
Shared contract tests, fixtures, fakes, and assertion helpers for MemoFS packages.
What is this?
Shared contract tests, fixtures, fakes, and assertion helpers for MemoFS packages. Adapter authors depend on this package to run the contract suites shipped from core against their own implementations of the embedder, reranker, recall store, memory store, extractor, LLM client, blob client, and metadata store contracts.
Installation
npm install -D @memofs/testing vitestvitest is a peer dependency.
Requires Node.js >= 22.
vitest is a peer dependency. Adapter authors should also install @memofs/core for the Minimal* types used in the contract options.
Quick Start
// packages/my-adapter/src/embedder/my-embedder.test.ts
import { describe } from "vitest";
import { defineEmbedderContractTests } from "@memofs/testing/contracts";
import { createMyEmbedder } from "./my-embedder";
describe("My Embedder Contract", () => {
defineEmbedderContractTests(() => createMyEmbedder({ apiKey: "test" }));
});Subpath Exports
| Subpath | Contents |
| --- | --- |
| @memofs/testing | Assertion helpers: expectVector, expectSortedDescending, expectFiniteNumber, expectNoMutation, cloneForMutationCheck |
| @memofs/testing/contracts | defineEmbedderContractTests, defineRerankerContractTests, defineRecallStoreContractTests, defineMemoryStoreContractTests, defineExtractorContractTests, defineLlmClientContractTests, defineBlobClientContractTests, defineMetadataStoreContractTests, and the *ContractOptions types |
| @memofs/testing/fakes | createFakeEmbedder, createFakeReranker, createFakeRecallStore, createFakeMemoryStore and their class types |
| @memofs/testing/fixtures | embeddingFixtures, rerankFixtures, recallFixtures, memoryFixtures, consolidationFixtures |
| @memofs/testing/vitest | createVitestConfig(overrides?) — a base vitest config factory |
Documentation
For the full contract surface, the options each contract accepts, and the fakes' option shapes, please refer to the Full Documentation.
Contributing
See our central Contributing Guide and development scripts for details on formatting, linting, and testing within the monorepo.
License
MIT
