feat(api): Add timeline benchmark

This commit is contained in:
Jesse Wierzbinski 2024-11-10 13:08:43 +01:00
parent 3ec5118771
commit 19d8680289
No known key found for this signature in database
3 changed files with 46 additions and 0 deletions

44
benchmarks/timeline.ts Normal file
View file

@ -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<void> => {
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<void> => {
const response = await fakeRequest("/api/v2/instance", {
headers: {
Authorization: `Bearer ${tokens[0].data.accessToken}`,
},
});
const object = (await response.json()) as Record<string, unknown>;
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();

BIN
bun.lockb

Binary file not shown.

View file

@ -91,6 +91,7 @@
"oclif": "^4.15.20", "oclif": "^4.15.20",
"ts-prune": "^0.10.3", "ts-prune": "^0.10.3",
"typescript": "^5.6.3", "typescript": "^5.6.3",
"vitepress": "^1.5.0",
"zod-to-json-schema": "^3.23.5" "zod-to-json-schema": "^3.23.5"
}, },
"peerDependencies": { "peerDependencies": {
@ -138,6 +139,7 @@
"markdown-it-container": "^4.0.0", "markdown-it-container": "^4.0.0",
"markdown-it-toc-done-right": "^4.2.0", "markdown-it-toc-done-right": "^4.2.0",
"mime-types": "^2.1.35", "mime-types": "^2.1.35",
"mitata": "^1.0.10",
"oauth4webapi": "^3.1.2", "oauth4webapi": "^3.1.2",
"ora": "^8.1.1", "ora": "^8.1.1",
"pg": "^8.13.1", "pg": "^8.13.1",