chroma / clients /js /test /update.collection.test.ts
badalsahani's picture
feat: chroma initial deploy
287a0bc
import { expect, test } from "@jest/globals";
import chroma from "./initClient";
import { IncludeEnum } from "../src/types";
import { IDS, DOCUMENTS, EMBEDDINGS, METADATAS } from "./data";
test("it should get embedding with matching documents", async () => {
await chroma.reset();
const collection = await chroma.createCollection({ name: "test" });
await collection.add({ ids: IDS, embeddings: EMBEDDINGS, metadatas: METADATAS, documents: DOCUMENTS });
const results = await collection.get({
ids: ["test1"],
include: [
IncludeEnum.Embeddings,
IncludeEnum.Metadatas,
IncludeEnum.Documents,
]
});
expect(results).toBeDefined();
expect(results).toBeInstanceOf(Object);
expect(results.embeddings![0]).toEqual([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
await collection.update({
ids: ["test1"],
embeddings: [[1, 2, 3, 4, 5, 6, 7, 8, 9, 11]],
metadatas: [{ test: "test1new" }],
documents: ["doc1new"]
});
const results2 = await collection.get({
ids: ["test1"],
include: [
IncludeEnum.Embeddings,
IncludeEnum.Metadatas,
IncludeEnum.Documents,
]
});
expect(results2).toBeDefined();
expect(results2).toBeInstanceOf(Object);
expect(results2.embeddings![0]).toEqual([1, 2, 3, 4, 5, 6, 7, 8, 9, 11]);
expect(results2.metadatas[0]).toEqual({ test: "test1new", float_value: -2 });
expect(results2.documents[0]).toEqual("doc1new");
});
// this currently fails
// test("it should update metadata or documents to array of Nones", async () => {
// await chroma.reset();
// const collection = await chroma.createCollection({ name: "test" });
// await collection.add({ ids: IDS, embeddings: EMBEDDINGS, metadatas: METADATAS, documents: DOCUMENTS });
// await collection.update({
// ids: ["test1"],
// metadatas: [undefined],
// });
// const results3 = await collection.get({
// ids: ["test1"],
// include: [
// IncludeEnum.Embeddings,
// IncludeEnum.Metadatas,
// IncludeEnum.Documents,
// ]
// });
// expect(results3).toBeDefined();
// expect(results3).toBeInstanceOf(Object);
// expect(results3.metadatas[0]).toEqual({});
// });