53 lines
2.7 KiB
JavaScript
53 lines
2.7 KiB
JavaScript
"use strict";
|
|
const assert = require("node:assert/strict");
|
|
const fs = require("node:fs");
|
|
const path = require("node:path");
|
|
const test = require("node:test");
|
|
|
|
const root = path.resolve(__dirname, "../..");
|
|
const read = relative => fs.readFileSync(path.join(root, relative), "utf8");
|
|
|
|
test("canonical AI and persona entry files route to the domestic map", () => {
|
|
for (const relative of [
|
|
"README.md", "INDEX.hdlp", "QUICKSTART-FOR-GENERAL-AI.md",
|
|
"eternal-lake-heart/heartbeat-core/ZHUYUAN-KEY.hdlp",
|
|
"zero-point/core-channel/GLSV-PERSONA-REMOTE-OPS.hdlp",
|
|
]) {
|
|
assert.match(read(relative), /guanghulab\.com|LL-DOMESTIC-OPS-ROUTE/);
|
|
}
|
|
const key = read("eternal-lake-heart/heartbeat-core/ZHUYUAN-KEY.hdlp");
|
|
assert.doesNotMatch(key, /zy_gtw_|guanghubingshuo\.com/);
|
|
assert.match(key, /禁止从本路径恢复.*\/exec/);
|
|
});
|
|
|
|
test("code map resolves REPO-001 to domestic and labels the Singapore route legacy", () => {
|
|
const codeMap = read(".code-map");
|
|
assert.match(codeMap, /^REPO-001=https:\/\/guanghulab\.com\/fifth-domain\/bingshuo\/fifth-domain\.git$/m);
|
|
assert.match(codeMap, /^REPO-012=https:\/\/guanghulab\.com\/code\/bingshuo\/guanghu-ice-heart\.git$/m);
|
|
assert.match(codeMap, /^REPO-001-LEGACY-SG=/m);
|
|
assert.match(codeMap, /^FD-REPO-MAP-001=routing\/repository-route-map\.json$/m);
|
|
assert.match(codeMap, /^FD-NODE-MAP-001=routing\/server-node-map\.json$/m);
|
|
assert.match(codeMap, /^ZY-OPS-LOOP-001=.*zhuyuan-persona-system\//m);
|
|
});
|
|
|
|
test("repository map exposes the current code channel as a public domestic route", () => {
|
|
const map = JSON.parse(read("routing/repository-route-map.json"));
|
|
const channel = map.repositories.find(item => item.code === "REPO-012");
|
|
assert.equal(channel.slug, "guanghu-ice-heart");
|
|
assert.equal(channel.state, "DOMESTIC_CODE_CHANNEL_PRIMARY");
|
|
assert.equal(channel.primary.url, "https://guanghulab.com/code/bingshuo/guanghu-ice-heart");
|
|
assert.equal(channel.primary.clone_url, "https://guanghulab.com/code/bingshuo/guanghu-ice-heart.git");
|
|
assert.match(JSON.stringify(channel.keywords), /公开读取/);
|
|
});
|
|
|
|
test("Zhuyuan current chain resolves to the domestic node without secrets", () => {
|
|
const nodeMap = JSON.parse(read("routing/server-node-map.json"));
|
|
assert.equal(nodeMap.map_id, "FD-NODE-MAP-001");
|
|
const loop = nodeMap.persona_routes.find(item => item.route_id === "ZY-OPS-LOOP-001");
|
|
assert.equal(loop.primary_node, "JD-FD-PRIMARY");
|
|
assert.match(read(loop.path), /ICE-GL-ZY001/);
|
|
const serialized = JSON.stringify(nodeMap);
|
|
assert.doesNotMatch(serialized, /ssh-(?:rsa|ed25519)\s+[A-Za-z0-9+/]/i);
|
|
assert.doesNotMatch(serialized, /"(?:password|token|private_key|ip)"\s*:/i);
|
|
assert.doesNotMatch(serialized, /\b(?:\d{1,3}\.){3}\d{1,3}\b/);
|
|
});
|