Spaces:
Running
Running
File size: 3,396 Bytes
287a0bc |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
import { expect, test, beforeEach } from "@jest/globals";
import chroma from "./initClient";
beforeEach(async () => {
await chroma.reset();
});
test("it should list collections", async () => {
let collections = await chroma.listCollections();
expect(collections).toBeDefined();
expect(collections).toBeInstanceOf(Array);
expect(collections.length).toBe(0);
const collection = await chroma.createCollection({ name: "test" });
collections = await chroma.listCollections();
expect(collections.length).toBe(1);
});
test("it should create a collection", async () => {
const collection = await chroma.createCollection({ name: "test" });
expect(collection).toBeDefined();
expect(collection).toHaveProperty("name");
expect(collection).toHaveProperty('id')
expect(collection.name).toBe("test");
let collections = await chroma.listCollections();
expect([{ name: "test", metadata: null, id: collection.id, database: "default_database", tenant: "default_tenant" }]).toEqual(
expect.arrayContaining(collections)
);
expect([{ name: "test2", metadata: null }]).not.toEqual(
expect.arrayContaining(collections)
);
await chroma.reset();
const collection2 = await chroma.createCollection({ name: "test2", metadata: { test: "test" } });
expect(collection2).toBeDefined();
expect(collection2).toHaveProperty("name");
expect(collection2).toHaveProperty('id')
expect(collection2.name).toBe("test2");
expect(collection2).toHaveProperty("metadata");
expect(collection2.metadata).toHaveProperty("test");
expect(collection2.metadata).toEqual({ test: "test" });
let collections2 = await chroma.listCollections();
expect([{ name: "test2", metadata: { test: "test" }, id: collection2.id, database: "default_database", tenant: "default_tenant" }]).toEqual(
expect.arrayContaining(collections2)
);
});
test("it should get a collection", async () => {
const collection = await chroma.createCollection({ name: "test" });
const collection2 = await chroma.getCollection({ name: "test" });
expect(collection).toBeDefined();
expect(collection2).toBeDefined();
expect(collection).toHaveProperty("name");
expect(collection2).toHaveProperty("name");
expect(collection.name).toBe(collection2.name);
});
// test("it should get or create a collection", async () => {
// await chroma.createCollection("test");
// const collection2 = await chroma.getOrCreateCollection("test");
// expect(collection2).toBeDefined();
// expect(collection2).toHaveProperty("name");
// expect(collection2.name).toBe("test");
// const collection3 = await chroma.getOrCreateCollection("test3");
// expect(collection3).toBeDefined();
// expect(collection3).toHaveProperty("name");
// expect(collection3.name).toBe("test3");
// });
test("it should delete a collection", async () => {
const collection = await chroma.createCollection({ name: "test" });
let collections = await chroma.listCollections();
expect(collections.length).toBe(1);
await chroma.deleteCollection({ name: "test" });
collections = await chroma.listCollections();
expect(collections.length).toBe(0);
});
// TODO: I want to test this, but I am not sure how to
// test('custom index params', async () => {
// throw new Error('not implemented')
// await chroma.reset()
// const collection = await chroma.createCollection('test', {"hnsw:space": "cosine"})
// })
|