aboutsummaryrefslogtreecommitdiffstats
path: root/packages/e2e_tests/utils/api.ts
diff options
context:
space:
mode:
authorMohamed Bassem <me@mbassem.com>2024-12-30 16:55:49 +0000
committerMohamed Bassem <me@mbassem.com>2024-12-30 16:56:23 +0000
commit058e7238840b362135fd080045478025e31bf720 (patch)
treef094b35163961065d3d145e8ff826219b0bb3506 /packages/e2e_tests/utils/api.ts
parent5aee3404aa7f446a221a88c9b2cd529d1249e22f (diff)
downloadkarakeep-058e7238840b362135fd080045478025e31bf720.tar.zst
chore: Setup and add e2e tests for the API endpoints
Diffstat (limited to 'packages/e2e_tests/utils/api.ts')
-rw-r--r--packages/e2e_tests/utils/api.ts57
1 files changed, 57 insertions, 0 deletions
diff --git a/packages/e2e_tests/utils/api.ts b/packages/e2e_tests/utils/api.ts
new file mode 100644
index 00000000..84a6eb91
--- /dev/null
+++ b/packages/e2e_tests/utils/api.ts
@@ -0,0 +1,57 @@
+import { getTrpcClient } from "./trpc";
+
+export function getAuthHeader(apiKey: string) {
+ return {
+ "Content-Type": "application/json",
+ authorization: `Bearer ${apiKey}`,
+ };
+}
+
+export async function uploadTestAsset(
+ apiKey: string,
+ port: number,
+ file: File,
+) {
+ const formData = new FormData();
+ formData.append("file", file);
+
+ const response = await fetch(`http://localhost:${port}/api/assets`, {
+ method: "POST",
+ headers: {
+ authorization: `Bearer ${apiKey}`,
+ },
+ body: formData,
+ });
+
+ if (!response.ok) {
+ throw new Error(`Failed to upload asset: ${response.statusText}`);
+ }
+
+ return response.json() as Promise<{
+ assetId: string;
+ contentType: string;
+ fileName: string;
+ }>;
+}
+
+export async function createTestUser() {
+ const trpc = getTrpcClient();
+
+ const random = Math.random().toString(36).substring(7);
+ const email = `testuser+${random}@example.com`;
+
+ await trpc.users.create.mutate({
+ name: "Test User",
+ email,
+ password: "test1234",
+ confirmPassword: "test1234",
+ });
+
+ const { key } = await trpc.apiKeys.exchange.mutate({
+ email,
+ password: "test1234",
+ keyName: "test-key",
+ });
+
+ return key;
+}