mirror of
https://github.com/gethomepage/homepage.git
synced 2026-02-07 16:30:52 +08:00
First test!
This commit is contained in:
@@ -7,14 +7,14 @@ import widgets from "widgets/widgets";
|
||||
const proxyName = "backrestProxyHandler";
|
||||
const logger = createLogger(proxyName);
|
||||
|
||||
function sumField(plans, field) {
|
||||
export function sumField(plans, field) {
|
||||
return plans.reduce((sum, plan) => {
|
||||
const num = Number(plan[field]);
|
||||
return sum + (Number.isNaN(num) ? 0 : num);
|
||||
}, 0);
|
||||
}
|
||||
|
||||
function buildResponse(plans) {
|
||||
export function buildResponse(plans) {
|
||||
const numSuccess30Days = sumField(plans, "backupsSuccessLast30days");
|
||||
const numFailure30Days = sumField(plans, "backupsFailed30days");
|
||||
const bytesAdded30Days = sumField(plans, "bytesAddedLast30days");
|
||||
|
||||
37
src/widgets/backrest/proxy.test.js
Normal file
37
src/widgets/backrest/proxy.test.js
Normal file
@@ -0,0 +1,37 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
|
||||
import { buildResponse } from "./proxy";
|
||||
|
||||
describe("backrest proxy buildResponse", () => {
|
||||
it("aggregates plan metrics and latest status counts", () => {
|
||||
const plans = [
|
||||
{
|
||||
backupsSuccessLast30days: 3,
|
||||
backupsFailed30days: 1,
|
||||
bytesAddedLast30days: 1000,
|
||||
recentBackups: { status: ["STATUS_SUCCESS"] },
|
||||
},
|
||||
{
|
||||
backupsSuccessLast30days: 2,
|
||||
backupsFailed30days: 0,
|
||||
bytesAddedLast30days: 500,
|
||||
recentBackups: { status: ["STATUS_ERROR"] },
|
||||
},
|
||||
{
|
||||
backupsSuccessLast30days: "not-a-number",
|
||||
backupsFailed30days: 4,
|
||||
bytesAddedLast30days: 250,
|
||||
recentBackups: { status: [] },
|
||||
},
|
||||
];
|
||||
|
||||
expect(buildResponse(plans)).toEqual({
|
||||
numPlans: 3,
|
||||
numSuccess30Days: 5,
|
||||
numFailure30Days: 5,
|
||||
numSuccessLatest: 1,
|
||||
numFailureLatest: 1,
|
||||
bytesAdded30Days: 1750,
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user