feat: decode activity SSE events and expose tracker total
This commit is contained in:
@@ -117,3 +117,12 @@ test("decodeEvent handles inflight with a non-array requests field and no reques
|
||||
assert.deepEqual(ev.requests, []);
|
||||
}
|
||||
});
|
||||
|
||||
test("decodeEvent parses an activity event with an id", () => {
|
||||
const msg: SseMessage = {
|
||||
event: "message",
|
||||
data: JSON.stringify({ type: "activity", data: JSON.stringify({ id: 817 }) }),
|
||||
};
|
||||
const ev = decodeEvent(msg);
|
||||
assert.deepEqual(ev, { type: "activity", id: 817 });
|
||||
});
|
||||
|
||||
@@ -63,3 +63,13 @@ test("modelStatus normalizes states", () => {
|
||||
assert.equal(tracker.state("D"), "stopped");
|
||||
assert.equal(tracker.state("missing"), undefined);
|
||||
});
|
||||
|
||||
test("total sums in-flight requests across all models", () => {
|
||||
const tracker = new InflightTracker();
|
||||
assert.equal(tracker.total(), 0);
|
||||
tracker.apply({ type: "inflight", operation: "add", requests: [{ model: "A", id: "1" }, { model: "B", id: "2" }] });
|
||||
tracker.apply({ type: "inflight", operation: "add", requests: [{ model: "A", id: "3" }] });
|
||||
assert.equal(tracker.total(), 3);
|
||||
tracker.apply({ type: "inflight", operation: "remove", id: "1" });
|
||||
assert.equal(tracker.total(), 2);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user