mirror of https://github.com/openclaw/openclaw.git
test: harden device identity state dir coverage
This commit is contained in:
parent
ec2663ee5d
commit
8f86cb92ac
|
|
@ -13,4 +13,40 @@ describe("device identity state dir defaults", () => {
|
|||
expect(raw.deviceId).toBe(identity.deviceId);
|
||||
});
|
||||
});
|
||||
|
||||
it("reuses the stored identity on subsequent loads", async () => {
|
||||
await withStateDirEnv("openclaw-identity-state-", async ({ stateDir }) => {
|
||||
const first = loadOrCreateDeviceIdentity();
|
||||
const second = loadOrCreateDeviceIdentity();
|
||||
const identityPath = path.join(stateDir, "identity", "device.json");
|
||||
const raw = JSON.parse(await fs.readFile(identityPath, "utf8")) as {
|
||||
deviceId?: string;
|
||||
publicKeyPem?: string;
|
||||
};
|
||||
|
||||
expect(second).toEqual(first);
|
||||
expect(raw.deviceId).toBe(first.deviceId);
|
||||
expect(raw.publicKeyPem).toBe(first.publicKeyPem);
|
||||
});
|
||||
});
|
||||
|
||||
it("repairs stored device IDs that no longer match the public key", async () => {
|
||||
await withStateDirEnv("openclaw-identity-state-", async ({ stateDir }) => {
|
||||
const original = loadOrCreateDeviceIdentity();
|
||||
const identityPath = path.join(stateDir, "identity", "device.json");
|
||||
const raw = JSON.parse(await fs.readFile(identityPath, "utf8")) as Record<string, unknown>;
|
||||
|
||||
await fs.writeFile(
|
||||
identityPath,
|
||||
`${JSON.stringify({ ...raw, deviceId: "stale-device-id" }, null, 2)}\n`,
|
||||
"utf8",
|
||||
);
|
||||
|
||||
const repaired = loadOrCreateDeviceIdentity();
|
||||
const stored = JSON.parse(await fs.readFile(identityPath, "utf8")) as { deviceId?: string };
|
||||
|
||||
expect(repaired.deviceId).toBe(original.deviceId);
|
||||
expect(stored.deviceId).toBe(original.deviceId);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue