mirror of
https://github.com/versia-pub/server.git
synced 2025-12-06 16:38:19 +01:00
43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
import { afterAll, beforeAll, describe, expect, test } from "bun:test";
|
|
import { db } from "@versia/kit/db";
|
|
import { eq } from "drizzle-orm";
|
|
import { Applications } from "~/drizzle/schema";
|
|
import { fakeRequest } from "~/tests/utils";
|
|
|
|
const clientId = "test-client-id";
|
|
const redirectUri = "https://example.com/callback";
|
|
const scope = "openid profile email";
|
|
const secret = "test-secret";
|
|
|
|
beforeAll(async () => {
|
|
await db.insert(Applications).values({
|
|
clientId,
|
|
redirectUri,
|
|
scopes: scope,
|
|
name: "Test Application",
|
|
secret,
|
|
});
|
|
});
|
|
|
|
afterAll(async () => {
|
|
await db.delete(Applications).where(eq(Applications.clientId, clientId));
|
|
});
|
|
|
|
describe("/.well-known/jwks", () => {
|
|
test("should return JWK set with valid inputs", async () => {
|
|
const response = await fakeRequest("/.well-known/jwks", {
|
|
method: "GET",
|
|
});
|
|
|
|
expect(response.status).toBe(200);
|
|
const body = await response.json();
|
|
expect(body.keys).toHaveLength(1);
|
|
expect(body.keys[0].kty).toBe("OKP");
|
|
expect(body.keys[0].use).toBe("sig");
|
|
expect(body.keys[0].alg).toBe("EdDSA");
|
|
expect(body.keys[0].kid).toBe("1");
|
|
expect(body.keys[0].crv).toBe("Ed25519");
|
|
expect(body.keys[0].x).toBeString();
|
|
});
|
|
});
|