fix: stabilize MindSpace local workflows
Signed-off-by: john <cynell@139.com>
This commit is contained in:
@@ -6,6 +6,7 @@ import { USER_COOKIE } from '../user-auth.mjs';
|
||||
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);
|
||||
|
||||
export function sleep(ms) {
|
||||
return new Promise((resolve) => setTimeout(resolve, ms));
|
||||
@@ -246,7 +247,7 @@ async function listPublicHtmlFiles(publishDir) {
|
||||
}
|
||||
|
||||
export async function snapshotPublicHtml(publishKey) {
|
||||
const publishDir = path.join(repoRoot, PUBLISH_ROOT_DIR, publishKey);
|
||||
const publishDir = path.join(scenarioH5Root, PUBLISH_ROOT_DIR, publishKey);
|
||||
return listPublicHtmlFiles(publishDir);
|
||||
}
|
||||
|
||||
@@ -304,7 +305,7 @@ export async function verifyPageAccess({
|
||||
let pageUrl = links.find((url) => /\/MindSpace\/.+\.html/i.test(url)) ?? null;
|
||||
|
||||
if (!pageUrl && publishKey) {
|
||||
const htmlAfter = await listPublicHtmlFiles(path.join(repoRoot, PUBLISH_ROOT_DIR, publishKey));
|
||||
const htmlAfter = await listPublicHtmlFiles(path.join(scenarioH5Root, PUBLISH_ROOT_DIR, publishKey));
|
||||
const beforeSet = new Set(htmlBefore.map((item) => item.fullPath));
|
||||
const fresh = htmlAfter
|
||||
.filter((item) => !beforeSet.has(item.fullPath))
|
||||
@@ -359,7 +360,7 @@ export async function verifySurveyDelivery({
|
||||
expect = {},
|
||||
reporter,
|
||||
}) {
|
||||
const publishDir = path.join(repoRoot, PUBLISH_ROOT_DIR, publishKey);
|
||||
const publishDir = path.join(scenarioH5Root, PUBLISH_ROOT_DIR, publishKey);
|
||||
const publicDir = path.join(publishDir, 'public');
|
||||
const policyDir = path.join(publishDir, '.mindspace', 'page-data-policies');
|
||||
const sqlitePath = path.join(publishDir, '.mindspace', 'private-data.sqlite');
|
||||
@@ -469,7 +470,7 @@ async function readJsonIfExists(filePath) {
|
||||
}
|
||||
|
||||
async function findPublicSurveyPolicy(publishKey, datasetName) {
|
||||
const policyDir = path.join(repoRoot, PUBLISH_ROOT_DIR, publishKey, '.mindspace', 'page-data-policies');
|
||||
const policyDir = path.join(scenarioH5Root, PUBLISH_ROOT_DIR, publishKey, '.mindspace', 'page-data-policies');
|
||||
let entries = [];
|
||||
try {
|
||||
entries = await fs.readdir(policyDir);
|
||||
@@ -493,7 +494,7 @@ export async function verifyChildrenHobbyDietSurvey({
|
||||
testInsert = true,
|
||||
spec = CHILDREN_HOBBY_DIET_SURVEY,
|
||||
} = {}) {
|
||||
const publishDir = path.join(repoRoot, PUBLISH_ROOT_DIR, publishKey);
|
||||
const publishDir = path.join(scenarioH5Root, PUBLISH_ROOT_DIR, publishKey);
|
||||
const publicDir = path.join(publishDir, 'public');
|
||||
const sqlitePath = path.join(publishDir, '.mindspace', 'private-data.sqlite');
|
||||
let ok = true;
|
||||
@@ -524,7 +525,8 @@ export async function verifyChildrenHobbyDietSurvey({
|
||||
} else {
|
||||
reporter.pass('问卷提交字段', `${spec.dataset}.${spec.dietField}`);
|
||||
}
|
||||
if (!adminHtml.includes('每日饮食') || !adminHtml.includes(spec.dietField)) {
|
||||
const adminHasDietLabel = spec.dietKeywords.some((keyword) => adminHtml.includes(keyword));
|
||||
if (!adminHasDietLabel || !adminHtml.includes(spec.dietField)) {
|
||||
reporter.fail('后台饮食列', `未展示 ${spec.dietField}`);
|
||||
ok = false;
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user