diff --git a/benchmarks/timeline.ts b/benchmarks/timeline.ts new file mode 100644 index 00000000..0639a3a9 --- /dev/null +++ b/benchmarks/timeline.ts @@ -0,0 +1,44 @@ +import type { Status as ApiStatus } from "@versia/client/types"; +import { fakeRequest, getTestStatuses, getTestUsers } from "~/tests/utils"; +import { run, bench } from "mitata"; +import { configureLoggers } from "@/loggers"; + +await configureLoggers(true); + +const { users, tokens, deleteUsers } = await getTestUsers(5); +await getTestStatuses(40, users[0]); + +const testTimeline = async (): Promise => { + const response = await fakeRequest("/api/v1/timelines/home", { + headers: { + Authorization: `Bearer ${tokens[0].data.accessToken}`, + }, + }); + + const objects = (await response.json()) as ApiStatus[]; + + if (objects.length !== 20) { + throw new Error("Invalid response (not 20 objects)"); + } +}; + +const testInstance = async (): Promise => { + const response = await fakeRequest("/api/v2/instance", { + headers: { + Authorization: `Bearer ${tokens[0].data.accessToken}`, + }, + }); + + const object = (await response.json()) as Record; + + if (typeof object !== "object") { + throw new Error("Invalid response (not an object)"); + } +}; + +bench("timeline", testTimeline).range("amount", 1, 1000); +bench("instance", testInstance).range("amount", 1, 1000); + +await run(); + +await deleteUsers(); diff --git a/bun.lockb b/bun.lockb index 05b93b71..f4cc5ad0 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/package.json b/package.json index 1692b8ff..0cbe1de2 100644 --- a/package.json +++ b/package.json @@ -91,6 +91,7 @@ "oclif": "^4.15.20", "ts-prune": "^0.10.3", "typescript": "^5.6.3", + "vitepress": "^1.5.0", "zod-to-json-schema": "^3.23.5" }, "peerDependencies": { @@ -138,6 +139,7 @@ "markdown-it-container": "^4.0.0", "markdown-it-toc-done-right": "^4.2.0", "mime-types": "^2.1.35", + "mitata": "^1.0.10", "oauth4webapi": "^3.1.2", "ora": "^8.1.1", "pg": "^8.13.1",