chroma / clients /js /test /admin.test.ts
badalsahani's picture
feat: chroma initial deploy
287a0bc
import { expect, test } from "@jest/globals";
import { AdminClient } from "../src/AdminClient";
import adminClient from "./initAdminClient";
test("it should create the admin client connection", async () => {
expect(adminClient).toBeDefined();
expect(adminClient).toBeInstanceOf(AdminClient);
});
test("it should create and get a tenant", async () => {
await adminClient.createTenant({ name: "testTenant" });
const tenant = await adminClient.getTenant({ name: "testTenant" });
expect(tenant).toBeDefined();
expect(tenant).toHaveProperty('name')
expect(tenant.name).toBe("testTenant");
})
test("it should create and get a database for a tenant", async () => {
await adminClient.createTenant({ name: "test3" });
const database = await adminClient.createDatabase({ name: "test", tenantName: "test3" });
expect(database).toBeDefined();
expect(database).toHaveProperty('name')
expect(database.name).toBe("test");
const getDatabase = await adminClient.getDatabase({ name: "test", tenantName: "test3" });
expect(getDatabase).toBeDefined();
expect(getDatabase).toHaveProperty('name')
expect(getDatabase.name).toBe("test");
})
// test that it can set the tenant and database
test("it should set the tenant and database", async () => {
// doesnt exist so should throw
await expect(adminClient.setTenant({ tenant: "testTenant", database: "testDatabase" })).rejects.toThrow();
await adminClient.createTenant({ name: "testTenant!" });
await adminClient.createDatabase({ name: "test3!", tenantName: "testTenant!" });
await adminClient.setTenant({ tenant: "testTenant!", database: "test3!" });
expect(adminClient.tenant).toBe("testTenant!");
expect(adminClient.database).toBe("test3!");
// doesnt exist so should throw
await expect(adminClient.setDatabase({database: "testDatabase2"})).rejects.toThrow();
await adminClient.createDatabase({ name: "testDatabase2", tenantName: "testTenant!" });
await adminClient.setDatabase({database: "testDatabase2"})
expect(adminClient.database).toBe("testDatabase2");
})