im_wower
·
2026-03-21
index.test.js
1import assert from "node:assert/strict";
2import test from "node:test";
3
4import {
5 GLOBAL_LEASE_NAME,
6 buildControllerHeartbeatRecord,
7 buildLeaderLeaseAcquireResult,
8 buildLeaderLeaseRecord,
9 getLeaderLeaseOperation,
10 isLeaderLeaseExpired
11} from "./index.ts";
12
13test("buildControllerHeartbeatRecord preserves heartbeat and startup timestamps", () => {
14 const record = buildControllerHeartbeatRecord({
15 controllerId: "mini-main",
16 host: "mini",
17 role: "primary",
18 priority: 100,
19 status: "alive",
20 version: "0.1.0",
21 heartbeatAt: 120,
22 startedAt: 90,
23 metadataJson: "{\"slot\":\"main\"}"
24 });
25
26 assert.deepEqual(record, {
27 controllerId: "mini-main",
28 host: "mini",
29 role: "primary",
30 priority: 100,
31 status: "alive",
32 version: "0.1.0",
33 lastHeartbeatAt: 120,
34 lastStartedAt: 90,
35 metadataJson: "{\"slot\":\"main\"}"
36 });
37});
38
39test("getLeaderLeaseOperation returns renew only for the active holder", () => {
40 const currentLease = {
41 leaseName: GLOBAL_LEASE_NAME,
42 holderId: "mini-main",
43 holderHost: "mini",
44 term: 7,
45 leaseExpiresAt: 150,
46 renewedAt: 120,
47 preferredHolderId: "mini-main",
48 metadataJson: null
49 };
50
51 assert.equal(getLeaderLeaseOperation(currentLease, "mini-main", 140), "renew");
52 assert.equal(getLeaderLeaseOperation(currentLease, "mac-standby", 140), "acquire");
53 assert.equal(getLeaderLeaseOperation(currentLease, "mini-main", 151), "acquire");
54 assert.equal(isLeaderLeaseExpired(currentLease, 151), true);
55});
56
57test("buildLeaderLeaseRecord increments term for takeover and marks standby responses", () => {
58 const previousLease = {
59 leaseName: GLOBAL_LEASE_NAME,
60 holderId: "mini-main",
61 holderHost: "mini",
62 term: 3,
63 leaseExpiresAt: 110,
64 renewedAt: 80,
65 preferredHolderId: "mini-main",
66 metadataJson: "{\"role\":\"primary\"}"
67 };
68
69 const desiredLease = buildLeaderLeaseRecord(previousLease, {
70 controllerId: "mac-standby",
71 host: "mac",
72 ttlSec: 30,
73 preferred: false,
74 now: 111
75 });
76
77 assert.deepEqual(desiredLease, {
78 leaseName: GLOBAL_LEASE_NAME,
79 holderId: "mac-standby",
80 holderHost: "mac",
81 term: 4,
82 leaseExpiresAt: 141,
83 renewedAt: 111,
84 preferredHolderId: "mini-main",
85 metadataJson: "{\"role\":\"primary\"}"
86 });
87
88 const response = buildLeaderLeaseAcquireResult(previousLease, previousLease, {
89 controllerId: "mac-standby",
90 host: "mac",
91 ttlSec: 30,
92 now: 100
93 });
94
95 assert.equal(response.isLeader, false);
96 assert.equal(response.operation, "acquire");
97 assert.equal(response.holderId, "mini-main");
98});