From b0b089aea993af20f1a86eb6c309b3d31904218d Mon Sep 17 00:00:00 2001 From: Max Isom Date: Thu, 2 May 2024 09:22:53 -0700 Subject: [PATCH] [ENH] JS admin client should throw well-formatted errors rather than Responses (#2106) --- clients/js/src/AdminClient.ts | 3 ++- clients/js/test/admin.test.ts | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/clients/js/src/AdminClient.ts b/clients/js/src/AdminClient.ts index 7ea383aef6d..d6fd56c1a06 100644 --- a/clients/js/src/AdminClient.ts +++ b/clients/js/src/AdminClient.ts @@ -6,6 +6,7 @@ import { authOptionsToAuthProvider, ClientAuthProvider, } from "./auth"; +import { chromaFetch } from "./ChromaFetch"; const DEFAULT_TENANT = "default_tenant"; const DEFAULT_DATABASE = "default_database"; @@ -64,7 +65,7 @@ export class AdminClient { basePath: path, }); - this.api = new DefaultApi(apiConfig); + this.api = new DefaultApi(apiConfig, undefined, chromaFetch); this.api.options = fetchOptions ?? {}; if (auth !== undefined) { diff --git a/clients/js/test/admin.test.ts b/clients/js/test/admin.test.ts index a0ba58b7fd9..ab84b3ead63 100644 --- a/clients/js/test/admin.test.ts +++ b/clients/js/test/admin.test.ts @@ -1,6 +1,7 @@ import { expect, test } from "@jest/globals"; import { AdminClient } from "../src/AdminClient"; import adminClient from "./initAdminClient"; +import { ChromaError } from "../src/Errors"; test("it should create the admin client connection", async () => { expect(adminClient).toBeDefined(); @@ -64,3 +65,13 @@ test("it should set the tenant and database", async () => { expect(adminClient.database).toBe("testDatabase2"); }); + +test("it should throw well-formatted errors", async () => { + try { + await adminClient.createDatabase({ name: "test", tenantName: "foo" }); + expect(false).toBe(true); + } catch (error) { + expect(error).toBeInstanceOf(Error); + expect(error).toBeInstanceOf(ChromaError); + } +});