mirror of
https://github.com/versia-pub/server.git
synced 2026-03-13 05:49:16 +01:00
feat(api): ✨ Add timeline benchmark
This commit is contained in:
parent
3ec5118771
commit
19d8680289
3 changed files with 46 additions and 0 deletions
44
benchmarks/timeline.ts
Normal file
44
benchmarks/timeline.ts
Normal 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();
|
||||
Loading…
Add table
Add a link
Reference in a new issue