Skip to content

Commit 57e75a9

Browse files
Fix admin metrics aggregation
Signed-off-by: ManmohanBuildsProducts <111474771+ManmohanBuildsProducts@users.noreply.github.com>
1 parent 419cfec commit 57e75a9

2 files changed

Lines changed: 47 additions & 4 deletions

File tree

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
1+
import { listJobs } from "./jobService.js";
2+
import { listUsers } from "./userService.js";
3+
14
export async function getAdminMetrics() {
5+
const [jobs, users] = await Promise.all([listJobs(), listUsers()]);
6+
27
return {
3-
openJobs: 42,
4-
activeFreelancers: 185,
5-
flaggedAccounts: 3,
6-
monthlyVolume: 128900
8+
openJobs: jobs.filter((job) => job.status === "open").length,
9+
activeFreelancers: users.filter((user) => user.role === "freelancer").length,
10+
flaggedAccounts: 0,
11+
monthlyVolume: 0
712
};
813
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import test from "node:test";
2+
import assert from "node:assert/strict";
3+
import { createJob } from "../services/jobService.js";
4+
import { getAdminMetrics } from "../services/adminService.js";
5+
import { createUser } from "../services/userService.js";
6+
7+
test("admin metrics reflect in-memory jobs and freelancer users", async () => {
8+
assert.deepEqual(await getAdminMetrics(), {
9+
openJobs: 0,
10+
activeFreelancers: 0,
11+
flaggedAccounts: 0,
12+
monthlyVolume: 0
13+
});
14+
15+
await createJob({
16+
title: "Build a landing page",
17+
description: "Create a responsive marketplace landing page",
18+
budgetMin: 500,
19+
budgetMax: 1200,
20+
categoryId: "web",
21+
skills: ["nextjs"]
22+
});
23+
await createUser({
24+
email: "freelancer@example.com",
25+
role: "freelancer"
26+
});
27+
await createUser({
28+
email: "client@example.com",
29+
role: "client"
30+
});
31+
32+
assert.deepEqual(await getAdminMetrics(), {
33+
openJobs: 1,
34+
activeFreelancers: 1,
35+
flaggedAccounts: 0,
36+
monthlyVolume: 0
37+
});
38+
});

0 commit comments

Comments
 (0)