源码快照 @ 2026-09-02 (source-only, 剔除非源码素材)
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
import { describe, expect, test } from "bun:test";
|
||||
|
||||
import { initialServerState, serverReducer } from "../src/react-app/kernel/server-provider-state";
|
||||
|
||||
describe("server provider state", () => {
|
||||
test("preserves state identity for repeated polling results", () => {
|
||||
const ready = serverReducer(initialServerState, {
|
||||
type: "ready",
|
||||
list: ["http://127.0.0.1:4096/opencode"],
|
||||
active: "http://127.0.0.1:4096/opencode",
|
||||
});
|
||||
const healthy = serverReducer(ready, { type: "healthy", healthy: true });
|
||||
|
||||
expect(serverReducer(healthy, { type: "healthy", healthy: true })).toBe(healthy);
|
||||
expect(serverReducer(healthy, {
|
||||
type: "ready",
|
||||
list: ["http://127.0.0.1:4096/opencode"],
|
||||
active: "http://127.0.0.1:4096/opencode",
|
||||
})).toBe(healthy);
|
||||
expect(serverReducer(healthy, {
|
||||
type: "add",
|
||||
url: "http://127.0.0.1:4096/opencode",
|
||||
})).toBe(healthy);
|
||||
expect(serverReducer(healthy, {
|
||||
type: "remove",
|
||||
url: "http://127.0.0.1:9999/opencode",
|
||||
})).toBe(healthy);
|
||||
});
|
||||
|
||||
test("publishes meaningful health and active-server changes", () => {
|
||||
const healthy = serverReducer(initialServerState, { type: "healthy", healthy: true });
|
||||
const active = serverReducer(healthy, {
|
||||
type: "active",
|
||||
active: "http://127.0.0.1:4096/opencode",
|
||||
});
|
||||
|
||||
expect(healthy).not.toBe(initialServerState);
|
||||
expect(active).not.toBe(healthy);
|
||||
expect(active.healthy).toBe(true);
|
||||
expect(active.active).toBe("http://127.0.0.1:4096/opencode");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user