File size: 2,551 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
import { expect, test } from "@jest/globals";
import chroma from "./initClient";

test("it should modify collection", async () => {
  await chroma.reset();
  const collection = await chroma.createCollection({ name: "test" });
  expect(collection.name).toBe("test");
  expect(collection.metadata).toBeUndefined();

  await collection.modify({ name: "test2" });
  expect(collection.name).toBe("test2");
  expect(collection.metadata).toBeUndefined();

  const collection2 = await chroma.getCollection({ name: "test2" });
  expect(collection2.name).toBe("test2");
  expect(collection2.metadata).toBeNull();

  // test changing name and metadata independently
  // and verify there are no side effects
  const original_name = "test3";
  const new_name = "test4";
  const original_metadata = { test: "test" };
  const new_metadata = { test: "test2" };

  const collection3 = await chroma.createCollection({
    name: original_name,
    metadata: original_metadata
  });
  expect(collection3.name).toBe(original_name);
  expect(collection3.metadata).toEqual(original_metadata);

  await collection3.modify({ name: new_name });
  expect(collection3.name).toBe(new_name);
  expect(collection3.metadata).toEqual(original_metadata);

  const collection4 = await chroma.getCollection({ name: new_name });
  expect(collection4.name).toBe(new_name);
  expect(collection4.metadata).toEqual(original_metadata);

  await collection3.modify({ metadata: new_metadata });
  expect(collection3.name).toBe(new_name);
  expect(collection3.metadata).toEqual(new_metadata);

  const collection5 = await chroma.getCollection({ name: new_name });
  expect(collection5.name).toBe(new_name);
  expect(collection5.metadata).toEqual(new_metadata);
});

test("it should store metadata", async () => {
  await chroma.reset();
  const collection = await chroma.createCollection({ name: "test", metadata: { test: "test" } });
  expect(collection.metadata).toEqual({ test: "test" });

  // get the collection
  const collection2 = await chroma.getCollection({ name: "test" });
  expect(collection2.metadata).toEqual({ test: "test" });

  // get or create the collection
  const collection3 = await chroma.getOrCreateCollection({ name: "test" });
  expect(collection3.metadata).toEqual({ test: "test" });

  // modify
  await collection3.modify({ metadata: { test: "test2" } });
  expect(collection3.metadata).toEqual({ test: "test2" });

  // get it again
  const collection4 = await chroma.getCollection({ name: "test" });
  expect(collection4.metadata).toEqual({ test: "test2" });
});