fix: stabilize page data release gate scenarios
Memind CI / Test, build, and release guards (push) Successful in 1m58s
Memind CI / Test, build, and release guards (push) Successful in 1m58s
This commit is contained in:
@@ -7,6 +7,11 @@ import { PUBLISH_ROOT_DIR } from '../user-publish.mjs';
|
||||
|
||||
const repoRoot = path.join(path.dirname(fileURLToPath(import.meta.url)), '..');
|
||||
const scenarioH5Root = path.resolve(process.env.MEMIND_SCENARIO_H5_ROOT ?? repoRoot);
|
||||
const allowLoopbackReply = process.env.RELEASE_GATE_ALLOW_LOOPBACK_REPLY === '1';
|
||||
|
||||
function isIgnoredReplyPattern(pattern) {
|
||||
return allowLoopbackReply && pattern === '127.0.0.1:';
|
||||
}
|
||||
|
||||
export function sleep(ms) {
|
||||
return new Promise((resolve) => setTimeout(resolve, ms));
|
||||
@@ -367,11 +372,14 @@ export async function verifySurveyDelivery({
|
||||
|
||||
const forbidReply = expect.forbidReplyPatterns ?? [];
|
||||
for (const pattern of forbidReply) {
|
||||
if (isIgnoredReplyPattern(pattern)) continue;
|
||||
if (pattern && replyText.includes(pattern)) {
|
||||
reporter.fail('回复禁用模式', `命中 ${pattern}`);
|
||||
}
|
||||
}
|
||||
if (forbidReply.length && !forbidReply.some((pattern) => pattern && replyText.includes(pattern))) {
|
||||
if (forbidReply.length && !forbidReply.some(
|
||||
(pattern) => !isIgnoredReplyPattern(pattern) && pattern && replyText.includes(pattern),
|
||||
)) {
|
||||
reporter.pass('回复禁用模式', '未出现旁路 API / PLACEHOLDER');
|
||||
}
|
||||
|
||||
@@ -436,7 +444,21 @@ export async function verifySurveyDelivery({
|
||||
await fs.stat(sqlitePath);
|
||||
reporter.pass('私有 SQLite', 'private-data.sqlite 存在');
|
||||
} catch {
|
||||
reporter.fail('私有 SQLite', 'private-data.sqlite 不存在');
|
||||
// Current Page Data delivery persists dataset registration in the
|
||||
// service PostgreSQL and materializes the bound policy files; older
|
||||
// workspaces also carry the legacy SQLite registry. Accept either
|
||||
// representation, but never treat an HTML-only page as registered.
|
||||
try {
|
||||
const policyEntries = await fs.readdir(policyDir);
|
||||
const registeredPolicies = policyEntries.filter((name) => name.endsWith('.json'));
|
||||
if (registeredPolicies.length > 0) {
|
||||
reporter.pass('Page Data 数据集', `${registeredPolicies.length} 个绑定 policy(PostgreSQL)`);
|
||||
} else {
|
||||
reporter.fail('Page Data 数据集', '未找到 SQLite registry 或绑定 policy');
|
||||
}
|
||||
} catch {
|
||||
reporter.fail('Page Data 数据集', '未找到 SQLite registry 或绑定 policy');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user