server/api/api/v1/accounts/verify_credentials/index.test.ts
Jesse Wierzbinski ec506241f0
Some checks failed
CodeQL Scan / Analyze (javascript-typescript) (push) Failing after 6s
Build Docker Images / lint (push) Successful in 50s
Build Docker Images / check (push) Successful in 1m24s
Build Docker Images / tests (push) Failing after 8s
Build Docker Images / build (server, Dockerfile, ${{ github.repository_owner }}/server) (push) Has been skipped
Build Docker Images / build (worker, Worker.Dockerfile, ${{ github.repository_owner }}/worker) (push) Has been skipped
Deploy Docs to GitHub Pages / build (push) Failing after 15s
Mirror to Codeberg / Mirror (push) Failing after 0s
Deploy Docs to GitHub Pages / Deploy (push) Has been skipped
Nix Build / check (push) Failing after 33m5s
test(api): Remove old tests and introduce new, better ones
2025-03-23 03:34:17 +01:00

61 lines
2.3 KiB
TypeScript

import { afterAll, describe, expect, test } from "bun:test";
import { config } from "~/config";
import { generateClient, getTestUsers } from "~/tests/utils";
const { users, deleteUsers } = await getTestUsers(1);
afterAll(async () => {
await deleteUsers();
});
describe("/api/v1/accounts/verify_credentials", () => {
describe("Authentication", () => {
test("should return 401 when not authenticated", async () => {
await using client = await generateClient();
const { ok, raw } = await client.verifyAccountCredentials();
expect(ok).toBe(false);
expect(raw.status).toBe(401);
});
test("should return user data when authenticated", async () => {
await using client = await generateClient(users[0]);
const { ok, data } = await client.verifyAccountCredentials();
expect(ok).toBe(true);
expect(data.id).toBe(users[0].id);
expect(data.username).toBe(users[0].data.username);
expect(data.acct).toBe(users[0].data.username);
expect(data.display_name).toBe(users[0].data.displayName);
expect(data.note).toBe(users[0].data.note);
expect(data.url).toBe(
new URL(
`/@${users[0].data.username}`,
config.http.base_url,
).toString(),
);
expect(data.avatar).toBeDefined();
expect(data.avatar_static).toBeDefined();
expect(data.header).toBeDefined();
expect(data.header_static).toBeDefined();
expect(data.locked).toBe(users[0].data.isLocked);
expect(data.bot).toBe(users[0].data.isBot);
expect(data.group).toBe(false);
expect(data.discoverable).toBe(users[0].data.isDiscoverable);
expect(data.noindex).toBe(false);
expect(data.moved).toBeNull();
expect(data.suspended).toBe(false);
expect(data.limited).toBe(false);
expect(data.created_at).toBe(
new Date(users[0].data.createdAt).toISOString(),
);
expect(data.last_status_at).toBeNull();
expect(data.statuses_count).toBe(0);
expect(data.followers_count).toBe(0);
expect(data.following_count).toBe(0);
});
});
});