Integrate local business workflow and SaaS redesign
This commit is contained in:
@@ -336,8 +336,8 @@ test("browserless website enrichment persists crawl evidence without screenshots
|
||||
);
|
||||
assert.equal(
|
||||
hasPattern(fallbackSource, /internal\.pageSpeed\.queueLeadPageSpeedAudit/),
|
||||
true,
|
||||
"Browserless enrichment should keep the downstream PageSpeed handoff.",
|
||||
false,
|
||||
"Browserless enrichment must not automatically queue PageSpeed or audit runs.",
|
||||
);
|
||||
});
|
||||
|
||||
@@ -760,7 +760,7 @@ test("website enrichment guards long browser work before Convex action runtime a
|
||||
);
|
||||
});
|
||||
|
||||
test("processLeadEnrichment schedules PageSpeed audit jobs after successful enrichment", () => {
|
||||
test("processLeadEnrichment does not schedule PageSpeed audit jobs after enrichment", () => {
|
||||
const processBody = extractExportSource(actionSource, "processLeadEnrichment");
|
||||
const persistIndex = processBody.indexOf(
|
||||
"internal.websiteEnrichment.persistLeadEnrichmentResult",
|
||||
@@ -769,49 +769,16 @@ test("processLeadEnrichment schedules PageSpeed audit jobs after successful enri
|
||||
"internal.pageSpeed.queueLeadPageSpeedAudit",
|
||||
persistIndex,
|
||||
);
|
||||
const finishIndex = processBody.indexOf(
|
||||
"internal.websiteEnrichment.finishLeadEnrichmentRun",
|
||||
persistIndex,
|
||||
);
|
||||
|
||||
assert.notEqual(queueIndex, -1, "processLeadEnrichment should queue PageSpeed audits");
|
||||
assert.notEqual(persistIndex, -1, "processLeadEnrichment should persist website enrichment result");
|
||||
assert.notEqual(finishIndex, -1, "processLeadEnrichment should finish enrichment run");
|
||||
assert.equal(
|
||||
hasPattern(
|
||||
processBody,
|
||||
/runMutation\(\s*internal\.pageSpeed\.queueLeadPageSpeedAudit[\s\S]*leadId:\s*started\.lead\._id[\s\S]*parentRunId:\s*runId[\s\S]*\)/,
|
||||
),
|
||||
true,
|
||||
"Queue call should pass lead ID and parent run ID",
|
||||
);
|
||||
|
||||
assert.equal(queueIndex > persistIndex, true, "PageSpeed queueing should happen after persistence");
|
||||
assert.equal(queueIndex < finishIndex, true, "PageSpeed queueing should happen before success finish");
|
||||
});
|
||||
|
||||
test("processLeadEnrichment records warning on PageSpeed queue failure and continues", () => {
|
||||
const processBody = extractExportSource(actionSource, "processLeadEnrichment");
|
||||
|
||||
assert.equal(
|
||||
hasPattern(
|
||||
processBody,
|
||||
/try\s*\{[\s\S]*internal\.pageSpeed\.queueLeadPageSpeedAudit[\s\S]*\}\s*catch\s*\([^)]*\)\s*\{[\s\S]*internal\.runs\.appendEventInternal[\s\S]*level:\s*"warning"/,
|
||||
),
|
||||
true,
|
||||
"Queueing PageSpeed should be wrapped in warning-safe try/catch",
|
||||
);
|
||||
assert.equal(
|
||||
hasPattern(
|
||||
processBody,
|
||||
/PageSpeed-Analyse konnte nicht in die Warteschlange gesetzt werden\./,
|
||||
),
|
||||
true,
|
||||
"Warning event should describe queue failure",
|
||||
queueIndex,
|
||||
-1,
|
||||
"Website enrichment must not automatically queue PageSpeed or audit runs",
|
||||
);
|
||||
});
|
||||
|
||||
test("processLeadEnrichment regression: queue PageSpeed on invalid URL failure when started lead exists", () => {
|
||||
test("processLeadEnrichment regression: invalid URL failure does not queue PageSpeed", () => {
|
||||
const processBody = extractExportSource(actionSource, "processLeadEnrichment");
|
||||
const invalidUrlStart = processBody.indexOf("if (!rootUrl)");
|
||||
assert.notEqual(invalidUrlStart, -1, "Invalid URL guard should exist");
|
||||
@@ -823,27 +790,16 @@ test("processLeadEnrichment regression: queue PageSpeed on invalid URL failure w
|
||||
"Invalid URL branch should return null",
|
||||
);
|
||||
|
||||
const queueCallInInvalidUrl = processBody.indexOf(
|
||||
"internal.pageSpeed.queueLeadPageSpeedAudit",
|
||||
invalidUrlStart,
|
||||
);
|
||||
assert.equal(
|
||||
queueCallInInvalidUrl > invalidUrlStart && queueCallInInvalidUrl < invalidUrlReturnNull,
|
||||
true,
|
||||
"Invalid URL failure path should queue PageSpeed before returning.",
|
||||
);
|
||||
const invalidUrlBranch = processBody.slice(invalidUrlStart, invalidUrlReturnNull);
|
||||
assert.equal(
|
||||
hasPattern(
|
||||
invalidUrlBranch,
|
||||
/leadId:\s*started\.lead\._id[\s\S]*?parentRunId:\s*runId/,
|
||||
processBody.slice(invalidUrlStart, invalidUrlReturnNull).includes(
|
||||
"internal.pageSpeed.queueLeadPageSpeedAudit",
|
||||
),
|
||||
true,
|
||||
"Invalid URL queue payload should use started.lead._id and parentRunId runId.",
|
||||
false,
|
||||
"Invalid URL branch should not queue PageSpeed automatically.",
|
||||
);
|
||||
});
|
||||
|
||||
test("processLeadEnrichment regression: queue PageSpeed in fatal catch path with started lead", () => {
|
||||
test("processLeadEnrichment regression: fatal catch path does not queue PageSpeed", () => {
|
||||
const processBody = extractExportSource(actionSource, "processLeadEnrichment");
|
||||
const outerCatchStart = processBody.lastIndexOf("catch (error)");
|
||||
assert.notEqual(outerCatchStart, -1, "Outer catch block should exist");
|
||||
@@ -858,24 +814,11 @@ test("processLeadEnrichment regression: queue PageSpeed in fatal catch path with
|
||||
"Outer catch should return null on unrecoverable errors.",
|
||||
);
|
||||
|
||||
const queueCallInCatch = processBody.indexOf(
|
||||
"internal.pageSpeed.queueLeadPageSpeedAudit",
|
||||
outerCatchStart,
|
||||
);
|
||||
assert.equal(
|
||||
queueCallInCatch > outerCatchStart &&
|
||||
queueCallInCatch > startedGuard &&
|
||||
queueCallInCatch < catchReturnNull,
|
||||
true,
|
||||
"Fatal catch path should queue PageSpeed before returning, while started lead exists.",
|
||||
);
|
||||
const catchBlock = processBody.slice(outerCatchStart, catchReturnNull);
|
||||
assert.equal(
|
||||
hasPattern(
|
||||
catchBlock,
|
||||
/leadId:\s*started\.lead\._id[\s\S]*?parentRunId:\s*runId/,
|
||||
processBody.slice(outerCatchStart, catchReturnNull).includes(
|
||||
"internal.pageSpeed.queueLeadPageSpeedAudit",
|
||||
),
|
||||
true,
|
||||
"Catch-path PageSpeed queue payload should use started.lead._id and parentRunId runId.",
|
||||
false,
|
||||
"Fatal catch path should not queue PageSpeed automatically.",
|
||||
);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user