




















@@ -239,6 +239,17 @@ function batchUsesRuntimeWebToolsOnly(batch: readonly SecretRegistryEntry[]): bo
239239);
240240}
241241242+function collectOpenClawCoverageEntries(options: {
243+includePluginEntries: boolean;
244+}): SecretRegistryEntry[] {
245+return COVERAGE_REGISTRY_ENTRIES.filter(
246+(entry) =>
247+entry.configFile === "openclaw.json" &&
248+entry.id.startsWith("plugins.entries.") === options.includePluginEntries &&
249+!PLUGIN_OWNED_OPENCLAW_COVERAGE_EXCLUSIONS.has(entry.id),
250+);
251+}
252+242253function applyConfigForOpenClawTarget(
243254config: OpenClawConfig,
244255entry: SecretRegistryEntry,
@@ -510,6 +521,39 @@ async function prepareAuthCoverageSnapshot(params: {
510521};
511522}
512523524+async function expectOpenClawCoverageEntriesResolved(
525+label: string,
526+entries: readonly SecretRegistryEntry[],
527+): Promise<void> {
528+for (const batch of buildCoverageBatches(entries)) {
529+logCoverageBatch(label, batch);
530+const config = {} as OpenClawConfig;
531+const env: Record<string, string> = {};
532+for (const [index, entry] of batch.entries()) {
533+const envId = `OPENCLAW_SECRET_TARGET_${entry.id}`;
534+const runtimeEnvId = resolveCoverageEnvId(entry, envId);
535+const expectedValue = `resolved-${entry.id}`;
536+const wildcardToken = resolveCoverageWildcardToken(index);
537+env[runtimeEnvId] = expectedValue;
538+applyConfigForOpenClawTarget(config, entry, envId, wildcardToken);
539+}
540+const snapshot = await prepareConfigCoverageSnapshot({
541+ config,
542+ env,
543+loadablePluginOrigins: COVERAGE_LOADABLE_PLUGIN_ORIGINS,
544+includeRuntimeWebTools: batchNeedsRuntimeWebTools(batch),
545+skipConfigCollectors: batchUsesRuntimeWebToolsOnly(batch),
546+});
547+for (const [index, entry] of batch.entries()) {
548+const resolved = getPath(
549+snapshot.config,
550+resolveCoverageResolvedSegments(entry, resolveCoverageWildcardToken(index)),
551+);
552+expect(resolved).toBe(`resolved-${entry.id}`);
553+}
554+}
555+}
556+513557describe("secrets runtime target coverage", () => {
514558beforeAll(async () => {
515559const [sharedRuntime, resolver] = await Promise.all([
@@ -520,39 +564,18 @@ describe("secrets runtime target coverage", () => {
520564({ resolveSecretRefValues } = resolver);
521565});
522566523-it("handles every openclaw.json registry target when configured as active", async () => {
524-const entries = COVERAGE_REGISTRY_ENTRIES.filter(
525-(entry) =>
526-entry.configFile === "openclaw.json" &&
527-!PLUGIN_OWNED_OPENCLAW_COVERAGE_EXCLUSIONS.has(entry.id),
567+it("handles every core and channel openclaw.json registry target when configured as active", async () => {
568+await expectOpenClawCoverageEntriesResolved(
569+"openclaw.json core",
570+collectOpenClawCoverageEntries({ includePluginEntries: false }),
571+);
572+});
573+574+it("handles every plugin openclaw.json registry target when configured as active", async () => {
575+await expectOpenClawCoverageEntriesResolved(
576+"openclaw.json plugins",
577+collectOpenClawCoverageEntries({ includePluginEntries: true }),
528578);
529-for (const batch of buildCoverageBatches(entries)) {
530-logCoverageBatch("openclaw.json", batch);
531-const config = {} as OpenClawConfig;
532-const env: Record<string, string> = {};
533-for (const [index, entry] of batch.entries()) {
534-const envId = `OPENCLAW_SECRET_TARGET_${entry.id}`;
535-const runtimeEnvId = resolveCoverageEnvId(entry, envId);
536-const expectedValue = `resolved-${entry.id}`;
537-const wildcardToken = resolveCoverageWildcardToken(index);
538-env[runtimeEnvId] = expectedValue;
539-applyConfigForOpenClawTarget(config, entry, envId, wildcardToken);
540-}
541-const snapshot = await prepareConfigCoverageSnapshot({
542- config,
543- env,
544-loadablePluginOrigins: COVERAGE_LOADABLE_PLUGIN_ORIGINS,
545-includeRuntimeWebTools: batchNeedsRuntimeWebTools(batch),
546-skipConfigCollectors: batchUsesRuntimeWebToolsOnly(batch),
547-});
548-for (const [index, entry] of batch.entries()) {
549-const resolved = getPath(
550-snapshot.config,
551-resolveCoverageResolvedSegments(entry, resolveCoverageWildcardToken(index)),
552-);
553-expect(resolved).toBe(`resolved-${entry.id}`);
554-}
555-}
556579});
557580558581it("handles every auth-profiles registry target", async () => {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。