diff options
Diffstat (limited to 'packages/e2e_tests/utils/api.ts')
| -rw-r--r-- | packages/e2e_tests/utils/api.ts | 57 |
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; +} |
