Integrate local business workflow and SaaS redesign
This commit is contained in:
@@ -84,6 +84,8 @@ test("pageSpeed module exports mutation contracts", () => {
|
||||
assert.equal(existsSync(pageSpeedPath), true, "pageSpeed.ts should be present");
|
||||
const exports = getExportedConstNames(sourceFile);
|
||||
const required = [
|
||||
"getLeadAuditStartStates",
|
||||
"requestLeadAudit",
|
||||
"queueLeadPageSpeedAudit",
|
||||
"startPageSpeedAuditRun",
|
||||
"persistPageSpeedResult",
|
||||
@@ -110,12 +112,40 @@ test("pageSpeed module uses internalMutation for queue/start/persist/finish", ()
|
||||
}
|
||||
});
|
||||
|
||||
test("requestLeadAudit is a public authenticated mutation that queues PageSpeed only after user intent", () => {
|
||||
const source = extractExportSource("requestLeadAudit");
|
||||
|
||||
assert.equal(
|
||||
hasPattern(pageSpeedSource, /export const requestLeadAudit = mutation\s*\(/),
|
||||
true,
|
||||
"requestLeadAudit should be a public mutation for UI-triggered audit starts.",
|
||||
);
|
||||
assert.match(source, /requireOperator\(ctx\)/);
|
||||
assert.match(source, /queueLeadPageSpeedAuditForLead/);
|
||||
assert.match(source, /triggeredBy:\s*"manual"/);
|
||||
assert.match(source, /Audit-Start wurde manuell angefordert\./);
|
||||
});
|
||||
|
||||
test("getLeadAuditStartStates exposes active audit run status for lead review buttons", () => {
|
||||
const source = extractExportSource("getLeadAuditStartStates");
|
||||
|
||||
assert.equal(
|
||||
hasPattern(pageSpeedSource, /export const getLeadAuditStartStates = query\s*\(/),
|
||||
true,
|
||||
"getLeadAuditStartStates should be a public query.",
|
||||
);
|
||||
assert.match(source, /requireOperator\(ctx\)/);
|
||||
assert.match(source, /leadIds:\s*v\.array\(v\.id\("leads"\)\)/);
|
||||
assert.match(pageSpeedSource, /by_type_and_status_and_leadId/);
|
||||
assert.match(source, /canStart/);
|
||||
});
|
||||
|
||||
test("queueLeadPageSpeedAudit dedupes per lead and schedules pagespeed action", () => {
|
||||
const queueSource = extractExportSource("queueLeadPageSpeedAudit");
|
||||
const queueSource = pageSpeedSource;
|
||||
assert.equal(
|
||||
hasPattern(
|
||||
queueSource,
|
||||
/withIndex\(\s*"by_type_and_status_and_leadId"[\s\S]*?eq\("type",\s*"audit"\)[\s\S]*?eq\("status",\s*"pending"\)[\s\S]*?eq\("leadId",\s*args\.leadId\)/,
|
||||
/withIndex\(\s*"by_type_and_status_and_leadId"[\s\S]*?eq\("type",\s*"audit"\)[\s\S]*?eq\("status",\s*"pending"\)[\s\S]*?eq\("leadId",\s*(?:args\.)?leadId\)/,
|
||||
),
|
||||
true,
|
||||
"Queue should dedupe pending audit runs by type+status+leadId.",
|
||||
@@ -123,7 +153,7 @@ test("queueLeadPageSpeedAudit dedupes per lead and schedules pagespeed action",
|
||||
assert.equal(
|
||||
hasPattern(
|
||||
queueSource,
|
||||
/withIndex\(\s*"by_type_and_status_and_leadId"[\s\S]*?eq\("type",\s*"audit"\)[\s\S]*?eq\("status",\s*"running"\)[\s\S]*?eq\("leadId",\s*args\.leadId\)/,
|
||||
/withIndex\(\s*"by_type_and_status_and_leadId"[\s\S]*?eq\("type",\s*"audit"\)[\s\S]*?eq\("status",\s*"running"\)[\s\S]*?eq\("leadId",\s*(?:args\.)?leadId\)/,
|
||||
),
|
||||
true,
|
||||
"Queue should dedupe running audit runs by type+status+leadId.",
|
||||
|
||||
Reference in New Issue
Block a user