feat(FN-3470): prefer source aliases for runtime plugins and add test artif
Merges FN-3470 in two steps: first, runtime plugins now prefer source path aliases over build artifacts, with hardening tests for vitest alias resolution and plugin view registry updates; second, a new `ensure-test-artifacts.mjs` bootstrap script guarantees required test files exist before test runs Fusion-Task-Id: FN-3470
This commit is contained in:
41
scripts/__tests__/vitest-source-aliases.test.mjs
Normal file
41
scripts/__tests__/vitest-source-aliases.test.mjs
Normal file
@@ -0,0 +1,41 @@
|
||||
import test from "node:test";
|
||||
import assert from "node:assert/strict";
|
||||
import { readFileSync } from "node:fs";
|
||||
import { URL } from "node:url";
|
||||
|
||||
function read(path) {
|
||||
return readFileSync(new URL(`../../${path}`, import.meta.url), "utf8");
|
||||
}
|
||||
|
||||
test("dashboard vitest config aliases runtime plugins to src", () => {
|
||||
const content = read("packages/dashboard/vitest.config.ts");
|
||||
assert.match(content, /@fusion-plugin-examples\/hermes-runtime/);
|
||||
assert.match(content, /@fusion-plugin-examples\/openclaw-runtime/);
|
||||
assert.match(content, /@fusion-plugin-examples\/paperclip-runtime/);
|
||||
assert.match(content, /plugins\/fusion-plugin-hermes-runtime\/src\/index\.ts/);
|
||||
assert.match(content, /plugins\/fusion-plugin-openclaw-runtime\/src\/index\.ts/);
|
||||
assert.match(content, /plugins\/fusion-plugin-paperclip-runtime\/src\/index\.ts/);
|
||||
});
|
||||
|
||||
test("cli vitest config aliases runtime plugins to src", () => {
|
||||
const content = read("packages/cli/vitest.config.ts");
|
||||
assert.ok(content.includes("@fusion-plugin-examples\\/droid-runtime"));
|
||||
assert.ok(content.includes("@fusion-plugin-examples\\/hermes-runtime"));
|
||||
assert.ok(content.includes("@fusion-plugin-examples\\/openclaw-runtime"));
|
||||
assert.ok(content.includes("@fusion-plugin-examples\\/paperclip-runtime"));
|
||||
assert.match(content, /plugins\/fusion-plugin-hermes-runtime\/src\/index\.ts/);
|
||||
assert.match(content, /plugins\/fusion-plugin-openclaw-runtime\/src\/index\.ts/);
|
||||
assert.match(content, /plugins\/fusion-plugin-paperclip-runtime\/src\/index\.ts/);
|
||||
});
|
||||
|
||||
test("engine and plugin-sdk vitest configs keep source aliases", () => {
|
||||
const engine = read("packages/engine/vitest.config.ts");
|
||||
const sdk = read("packages/plugin-sdk/vitest.config.ts");
|
||||
|
||||
assert.match(engine, /@fusion\/core/);
|
||||
assert.match(engine, /\.\.\/core\/src\/index\.ts/);
|
||||
assert.match(engine, /@fusion\/plugin-sdk/);
|
||||
|
||||
assert.match(sdk, /@fusion\/core/);
|
||||
assert.match(sdk, /\.\.\/core\/src\/index\.ts/);
|
||||
});
|
||||
Reference in New Issue
Block a user