feat: add extensive test suite
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
type VersionFile = {
|
||||
exists: () => Promise<boolean>;
|
||||
text: () => Promise<string>;
|
||||
write: (value: string) => Promise<unknown>;
|
||||
};
|
||||
|
||||
export function createActiveHandler(dependencies: {
|
||||
file: VersionFile;
|
||||
randomUUID: () => string;
|
||||
isDevelopment: () => boolean;
|
||||
stream: (options: {
|
||||
motd: { data: string; event: string };
|
||||
signal: AbortSignal;
|
||||
}) => Response | Promise<Response>;
|
||||
}) {
|
||||
return async function GET(req: Request) {
|
||||
let version = "DEV";
|
||||
if (!dependencies.isDevelopment()) {
|
||||
if (!(await dependencies.file.exists())) {
|
||||
version = dependencies.randomUUID();
|
||||
await dependencies.file.write(version);
|
||||
} else {
|
||||
version = await dependencies.file.text();
|
||||
if (!version) {
|
||||
version = dependencies.randomUUID();
|
||||
await dependencies.file.write(version);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return dependencies.stream({
|
||||
motd: { data: version, event: "version" },
|
||||
signal: req.signal,
|
||||
});
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user