mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-12 21:53:00 -06:00
refactor(test): derive changed-test routes from canonical owners (#117099)
* refactor(test): derive changed-test routes from canonical owners * fix(test): type workflow owner descriptors for lint
This commit is contained in:
committed by
GitHub
parent
83e0be6efe
commit
2fcb47ad1e
+386
-1059
File diff suppressed because it is too large
Load Diff
@@ -1708,6 +1708,7 @@ describe("scripts/test-projects changed-target routing", () => {
|
||||
|
||||
it("routes script declaration edits through implementation owner tests", () => {
|
||||
const declarationMirrors = new Map([
|
||||
["scripts/check.d.mts", "scripts/check.mjs"],
|
||||
["scripts/build-stamp.d.mts", "scripts/build-stamp.mjs"],
|
||||
["scripts/ci-changed-scope.d.mts", "scripts/ci-changed-scope.mjs"],
|
||||
["scripts/copy-bundled-plugin-metadata.d.mts", "scripts/copy-bundled-plugin-metadata.mjs"],
|
||||
@@ -1717,6 +1718,7 @@ describe("scripts/test-projects changed-target routing", () => {
|
||||
"scripts/lib/bundled-plugin-build-entries.mjs",
|
||||
],
|
||||
["scripts/lib/config-boundary-guard.d.mts", "scripts/lib/config-boundary-guard.mjs"],
|
||||
["scripts/lib/arg-utils.d.mts", "scripts/lib/arg-utils.mjs"],
|
||||
[
|
||||
"scripts/lib/deprecated-config-api-guard.d.mts",
|
||||
"scripts/lib/deprecated-config-api-guard.mjs",
|
||||
@@ -1744,6 +1746,25 @@ describe("scripts/test-projects changed-target routing", () => {
|
||||
}
|
||||
});
|
||||
|
||||
it("routes shared contract ownership and declarations through every affected lane", () => {
|
||||
const targets = [
|
||||
"test/scripts/test-projects.test.ts",
|
||||
"test/vitest/vitest.contracts-channel-surface.config.ts",
|
||||
"test/vitest/vitest.contracts-channel-config.config.ts",
|
||||
"test/vitest/vitest.contracts-channel-registry.config.ts",
|
||||
"test/vitest/vitest.contracts-channel-session.config.ts",
|
||||
];
|
||||
for (const changedPath of [
|
||||
"test/vitest/vitest.contracts-paths.mjs",
|
||||
"test/vitest/vitest.contracts-paths.d.mts",
|
||||
]) {
|
||||
expect(resolveChangedTestTargetPlan([changedPath]), changedPath).toEqual({
|
||||
mode: "targets",
|
||||
targets,
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
it("keeps QA Lab gateway smoke script edits on QA e2e tests", () => {
|
||||
expect(resolveChangedTestTargetPlan(["scripts/dev/gateway-smoke.ts"])).toEqual({
|
||||
mode: "targets",
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
export const channelSurfaceContractPatterns: string[];
|
||||
export const channelConfigContractPatterns: string[];
|
||||
export const channelRegistryContractPatterns: string[];
|
||||
export const channelSessionContractPatterns: string[];
|
||||
@@ -0,0 +1,38 @@
|
||||
// Loader-free contract ownership shared by Vitest configs and changed-test routing.
|
||||
export const channelSurfaceContractPatterns = [
|
||||
"src/channels/plugins/contracts/channel-catalog.contract.test.ts",
|
||||
"src/channels/plugins/contracts/channel-import-guardrails.test.ts",
|
||||
"src/channels/plugins/contracts/group-policy.fallback.contract.test.ts",
|
||||
"src/channels/plugins/contracts/message-tool-artifact.contract.test.ts",
|
||||
"src/channels/plugins/contracts/outbound-payload.contract.test.ts",
|
||||
"src/channels/plugins/contracts/*-shard-a.contract.test.ts",
|
||||
"src/channels/plugins/contracts/*-shard-e.contract.test.ts",
|
||||
];
|
||||
|
||||
export const channelConfigContractPatterns = [
|
||||
"src/channels/plugins/contracts/gateway-auth-artifact.contract.test.ts",
|
||||
"src/channels/plugins/contracts/plugins-core.authorize-config-write.policy.contract.test.ts",
|
||||
"src/channels/plugins/contracts/plugins-core.authorize-config-write.targets.contract.test.ts",
|
||||
"src/channels/plugins/contracts/plugins-core.catalog.entries.contract.test.ts",
|
||||
"src/channels/plugins/contracts/*-shard-b.contract.test.ts",
|
||||
"src/channels/plugins/contracts/*-shard-f.contract.test.ts",
|
||||
];
|
||||
|
||||
export const channelRegistryContractPatterns = [
|
||||
"src/channels/plugins/contracts/plugin-shape.contract.test.ts",
|
||||
"src/channels/plugins/contracts/plugins-core.catalog.paths.contract.test.ts",
|
||||
"src/channels/plugins/contracts/plugins-core.loader.contract.test.ts",
|
||||
"src/channels/plugins/contracts/plugins-core.registry.contract.test.ts",
|
||||
"src/channels/plugins/contracts/*-shard-c.contract.test.ts",
|
||||
"src/channels/plugins/contracts/*-shard-g.contract.test.ts",
|
||||
];
|
||||
|
||||
export const channelSessionContractPatterns = [
|
||||
"src/channels/plugins/contracts/plugins-core.resolve-config-writes.contract.test.ts",
|
||||
"src/channels/plugins/contracts/registry.contract.test.ts",
|
||||
"src/channels/plugins/contracts/session-binding.registry-backed.contract.test.ts",
|
||||
"src/channels/plugins/contracts/session-key-artifact.contract.test.ts",
|
||||
"src/channels/plugins/contracts/thread-binding-artifact.contract.test.ts",
|
||||
"src/channels/plugins/contracts/*-shard-d.contract.test.ts",
|
||||
"src/channels/plugins/contracts/*-shard-h.contract.test.ts",
|
||||
];
|
||||
@@ -1,5 +1,11 @@
|
||||
// Vitest contract shared helpers build contract test project configuration.
|
||||
import { defineConfig } from "vitest/config";
|
||||
import {
|
||||
channelConfigContractPatterns,
|
||||
channelRegistryContractPatterns,
|
||||
channelSessionContractPatterns,
|
||||
channelSurfaceContractPatterns,
|
||||
} from "./vitest.contracts-paths.mjs";
|
||||
import {
|
||||
intersectIncludePatterns,
|
||||
loadPatternListFromEnv,
|
||||
@@ -7,47 +13,16 @@ import {
|
||||
} from "./vitest.pattern-file.ts";
|
||||
import { nonIsolatedRunnerPath, sharedVitestConfig } from "./vitest.shared.config.ts";
|
||||
|
||||
export {
|
||||
channelConfigContractPatterns,
|
||||
channelRegistryContractPatterns,
|
||||
channelSessionContractPatterns,
|
||||
channelSurfaceContractPatterns,
|
||||
};
|
||||
|
||||
const base = sharedVitestConfig as Record<string, unknown>;
|
||||
const baseTest = sharedVitestConfig.test ?? {};
|
||||
|
||||
export const channelSurfaceContractPatterns = [
|
||||
"src/channels/plugins/contracts/channel-catalog.contract.test.ts",
|
||||
"src/channels/plugins/contracts/channel-import-guardrails.test.ts",
|
||||
"src/channels/plugins/contracts/group-policy.fallback.contract.test.ts",
|
||||
"src/channels/plugins/contracts/message-tool-artifact.contract.test.ts",
|
||||
"src/channels/plugins/contracts/outbound-payload.contract.test.ts",
|
||||
"src/channels/plugins/contracts/*-shard-a.contract.test.ts",
|
||||
"src/channels/plugins/contracts/*-shard-e.contract.test.ts",
|
||||
];
|
||||
|
||||
export const channelConfigContractPatterns = [
|
||||
"src/channels/plugins/contracts/gateway-auth-artifact.contract.test.ts",
|
||||
"src/channels/plugins/contracts/plugins-core.authorize-config-write.policy.contract.test.ts",
|
||||
"src/channels/plugins/contracts/plugins-core.authorize-config-write.targets.contract.test.ts",
|
||||
"src/channels/plugins/contracts/plugins-core.catalog.entries.contract.test.ts",
|
||||
"src/channels/plugins/contracts/*-shard-b.contract.test.ts",
|
||||
"src/channels/plugins/contracts/*-shard-f.contract.test.ts",
|
||||
];
|
||||
|
||||
export const channelRegistryContractPatterns = [
|
||||
"src/channels/plugins/contracts/plugin-shape.contract.test.ts",
|
||||
"src/channels/plugins/contracts/plugins-core.catalog.paths.contract.test.ts",
|
||||
"src/channels/plugins/contracts/plugins-core.loader.contract.test.ts",
|
||||
"src/channels/plugins/contracts/plugins-core.registry.contract.test.ts",
|
||||
"src/channels/plugins/contracts/*-shard-c.contract.test.ts",
|
||||
"src/channels/plugins/contracts/*-shard-g.contract.test.ts",
|
||||
];
|
||||
|
||||
export const channelSessionContractPatterns = [
|
||||
"src/channels/plugins/contracts/plugins-core.resolve-config-writes.contract.test.ts",
|
||||
"src/channels/plugins/contracts/registry.contract.test.ts",
|
||||
"src/channels/plugins/contracts/session-binding.registry-backed.contract.test.ts",
|
||||
"src/channels/plugins/contracts/session-key-artifact.contract.test.ts",
|
||||
"src/channels/plugins/contracts/thread-binding-artifact.contract.test.ts",
|
||||
"src/channels/plugins/contracts/*-shard-d.contract.test.ts",
|
||||
"src/channels/plugins/contracts/*-shard-h.contract.test.ts",
|
||||
];
|
||||
|
||||
export const pluginContractPatterns = ["src/plugins/contracts/**/*.test.ts"];
|
||||
|
||||
function loadContractsIncludePatternsFromEnv(
|
||||
|
||||
Reference in New Issue
Block a user