mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-02 22:31:34 +00:00
* fix(secrets): isolate reload failures per owner * refactor(secrets): split runtime activation helpers * fix(secrets): export web warning type * fix(secrets): reject unsafe degraded config writes * fix(secrets): derive reload defaults type * fix(secrets): defer reload state publication * fix(secrets): preserve partial refresh state * fix(secrets): retry superseded reload preflight * fix(secrets): bind stale credentials to owner contracts * fix(secrets): scope degraded credential contracts * fix(secrets): restore source ownership guards * fix(secrets): recover provider-only degradation * fix(secrets): enforce degraded reload contracts * fix(secrets): preserve scoped reload state * fix(secrets): reconcile deferred descendant state * fix(secrets): commit reload state atomically * fix(secrets): preserve source transaction lineage * test(secrets): use non-secret lineage marker * chore(plugin-sdk): refresh API baseline * fix(secrets): canonicalize web owner contracts * fix(plugin-sdk): preserve legacy secret owner contracts * fix(secrets): satisfy startup activation types * test(secrets): align reload fixtures with owner contracts * refactor(secrets): move source recovery scope helper * fix(secrets): preserve owner contracts on web failures * fix(secrets): bind legacy web resolution contract * fix(secrets): retry stale auth publication
27 lines
913 B
TypeScript
27 lines
913 B
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { collectRuntimeSecretInputAssignment, createResolverContext } from "./runtime-shared.js";
|
|
|
|
describe("runtime secret assignments", () => {
|
|
it("keeps legacy plugin owners without contracts conservatively unbound", () => {
|
|
const context = createResolverContext({ sourceConfig: {}, env: {} });
|
|
|
|
collectRuntimeSecretInputAssignment({
|
|
value: { source: "env", provider: "default", id: "FIXTURE_LEGACY" },
|
|
path: "plugins.entries.example.config.apiKey",
|
|
expected: "string",
|
|
defaults: undefined,
|
|
context,
|
|
owner: {
|
|
ownerKind: "capability",
|
|
ownerId: "example",
|
|
requiredForGateway: false,
|
|
disposition: "isolate",
|
|
},
|
|
apply: () => undefined,
|
|
});
|
|
|
|
expect(context.assignments).toHaveLength(1);
|
|
expect(context.assignments[0]?.ownerContractDigest).toBeUndefined();
|
|
});
|
|
});
|