mirror of
https://github.com/gethomepage/homepage.git
synced 2026-02-08 00:40:52 +08:00
First test!
This commit is contained in:
@@ -7,14 +7,14 @@ import widgets from "widgets/widgets";
|
|||||||
const proxyName = "backrestProxyHandler";
|
const proxyName = "backrestProxyHandler";
|
||||||
const logger = createLogger(proxyName);
|
const logger = createLogger(proxyName);
|
||||||
|
|
||||||
function sumField(plans, field) {
|
export function sumField(plans, field) {
|
||||||
return plans.reduce((sum, plan) => {
|
return plans.reduce((sum, plan) => {
|
||||||
const num = Number(plan[field]);
|
const num = Number(plan[field]);
|
||||||
return sum + (Number.isNaN(num) ? 0 : num);
|
return sum + (Number.isNaN(num) ? 0 : num);
|
||||||
}, 0);
|
}, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
function buildResponse(plans) {
|
export function buildResponse(plans) {
|
||||||
const numSuccess30Days = sumField(plans, "backupsSuccessLast30days");
|
const numSuccess30Days = sumField(plans, "backupsSuccessLast30days");
|
||||||
const numFailure30Days = sumField(plans, "backupsFailed30days");
|
const numFailure30Days = sumField(plans, "backupsFailed30days");
|
||||||
const bytesAdded30Days = sumField(plans, "bytesAddedLast30days");
|
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