Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 42 additions & 42 deletions apps/api/src/routes/keys-provider.e2e.ts
Original file line number Diff line number Diff line change
Expand Up @@ -169,47 +169,47 @@ describe(
},
);

test.skip("POST /keys/provider with custom baseUrl", async () => {
if (!process.env.OPENAI_API_KEY) {
console.log("Skipping custom baseUrl test - no API key provided");
return;
}

const { token, orgId } = await setupTestData();
const customBaseUrl = "https://api.custom-openai.example.com";
const res = await app.request("/keys/provider", {
method: "POST",
headers: {
"Content-Type": "application/json",
Cookie: token,
},
body: JSON.stringify({
provider: "openai",
token: process.env.OPENAI_API_KEY,
baseUrl: customBaseUrl,
organizationId: orgId,
}),
});

expect(res.status).toBe(200);
const json = await res.json();
expect(json).toHaveProperty("providerKey");
expect(json.providerKey.provider).toBe("openai");
expect(json.providerKey.baseUrl).toBe(customBaseUrl);

const providerKey = await db.query.providerKey.findFirst({
where: {
provider: {
eq: "openai",
},
organizationId: {
eq: orgId,
},
},
});
expect(providerKey).not.toBeNull();
expect(providerKey?.provider).toBe("openai");
expect(providerKey?.baseUrl).toBe(customBaseUrl);
});
// test.skip("POST /keys/provider with custom baseUrl", async () => {
// if (!process.env.OPENAI_API_KEY) {
// console.log("Skipping custom baseUrl test - no API key provided");
// return;
// }
//
// const { token, orgId } = await setupTestData();
// const customBaseUrl = "https://api.custom-openai.example.com";
// const res = await app.request("/keys/provider", {
// method: "POST",
// headers: {
// "Content-Type": "application/json",
// Cookie: token,
// },
// body: JSON.stringify({
// provider: "openai",
// token: process.env.OPENAI_API_KEY,
// baseUrl: customBaseUrl,
// organizationId: orgId,
// }),
// });
//
// expect(res.status).toBe(200);
// const json = await res.json();
// expect(json).toHaveProperty("providerKey");
// expect(json.providerKey.provider).toBe("openai");
// expect(json.providerKey.baseUrl).toBe(customBaseUrl);
//
// const providerKey = await db.query.providerKey.findFirst({
// where: {
// provider: {
// eq: "openai",
// },
// organizationId: {
// eq: orgId,
// },
// },
// });
// expect(providerKey).not.toBeNull();
// expect(providerKey?.provider).toBe("openai");
// expect(providerKey?.baseUrl).toBe(customBaseUrl);
// });
},
);
32 changes: 6 additions & 26 deletions apps/gateway/src/api-individual.e2e.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
import "dotenv/config";
import { beforeEach, describe, expect, test } from "vitest";

import {
generateTestRequestId,
logMode,
validateLogByRequestId,
} from "@/chat-helpers.e2e";

import { db, tables, eq } from "@llmgateway/db";
import { models, providers } from "@llmgateway/models";

Expand All @@ -12,13 +18,6 @@ import {
readAll,
} from "./test-utils/test-helpers";

// Helper function to generate unique request IDs for tests
function generateTestRequestId(): string {
return `test-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
}

const logMode = process.env.LOG_MODE;

describe("e2e individual tests", () => {
// Helper to create unique test data for each test to avoid conflicts
async function createTestData(testId: string) {
Expand Down Expand Up @@ -72,7 +71,6 @@ describe("e2e individual tests", () => {
return { userId, orgId, projectId, userOrgId, token };
}

// Only clear cache before each test - avoid clearing logs as concurrent tests may be waiting for them
beforeEach(async () => {
await clearCache();
});
Expand All @@ -92,24 +90,6 @@ describe("e2e individual tests", () => {
});
}

async function validateLogByRequestId(requestId: string) {
const log = await waitForLogByRequestId(requestId);

if (logMode) {
console.log("log", JSON.stringify(log, null, 2));
}

expect(log.usedProvider).toBeTruthy();
expect(log.errorDetails).toBeNull();
expect(log.finishReason).not.toBeNull();
expect(log.unifiedFinishReason).not.toBeNull();
expect(log.unifiedFinishReason).toBeTruthy();
expect(log.usedModel).toBeTruthy();
expect(log.requestedModel).toBeTruthy();

return log;
}

function validateResponse(json: any) {
expect(json).toHaveProperty("choices.[0].message.content");

Expand Down
Loading