Skip to content

Commit 05a56ee

Browse files
SisyphusZhengDevBot
andauthored
fix(fullstack): unblock tier-2/3 evidence on current main (#1072)
- supabase-project-smoke: the browser journey asserted exact text against the SSR note item, whose shape is <li><strong>title</strong> — body</li>; an exact match can never hit a text node shared with the title. Match the list item containing the marker instead (three assertions: create, duplicate-submit, second-client realtime insert). Verified locally against the real project: full journey 14/14 green. - fullstack-deploy-smoke: wrangler 4.x 'queues list' has no --json flag (Unknown argument: json); enumerate queues through the Cloudflare API instead. Verified against the real account (0 queues exist yet; the idempotent create loop will provision them on the next run). Both defects were added in the #1045/#1049 evidence train and had never executed green on main; surfaced by the first post-#1071 provision run. Co-authored-by: DevBot <devbot@openelement.dev>
1 parent c889311 commit 05a56ee

2 files changed

Lines changed: 12 additions & 5 deletions

File tree

.github/workflows/fullstack-deploy-smoke.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,15 +126,19 @@ jobs:
126126
deno run --allow-read --allow-write ../../tools/render-cloudflare-async-config.ts \
127127
wrangler.jsonc .wrangler-async.generated.json --omit-scanner
128128
fi
129-
queues=$(deno run -A npm:wrangler@4.123.0 queues list --json)
129+
# wrangler 4.x `queues list` has no --json flag; enumerate existing
130+
# queues through the Cloudflare API instead.
131+
queues=$(curl -sf --max-time 30 \
132+
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
133+
"https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/queues?per_page=100")
130134
for queue in \
131135
openelement-attachment-scan \
132136
openelement-attachment-scan-dlq \
133137
openelement-attachment-scan-persistence-failures \
134138
openelement-payment-events \
135139
openelement-payment-events-dlq \
136140
openelement-payment-events-persistence-failures; do
137-
if echo "$queues" | jq -e --arg name "$queue" '.[] | select(.queue_name == $name)' >/dev/null; then
141+
if echo "$queues" | jq -e --arg name "$queue" '.result[] | select(.queue_name == $name)' >/dev/null; then
138142
echo "$queue already exists"
139143
else
140144
deno run -A npm:wrangler@4.123.0 queues create "$queue"

tools/smoke-supabase-browser.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,10 @@ try {
7171
page.waitForURL(`${baseUrl}/notes`),
7272
page.getByRole('button', { name: 'Create note' }).click(),
7373
]);
74-
await page.locator('#notes').getByText(createdMarker, { exact: true }).waitFor({
74+
// The SSR list item is `<li><strong>title</strong> — body</li>`: the marker
75+
// shares its <li> with the title, so exact-text matching can never hit it.
76+
// Match the list item that contains the marker instead.
77+
await page.locator('#notes li').filter({ hasText: createdMarker }).first().waitFor({
7578
state: 'visible',
7679
});
7780
await record('browser-note-create-prg-persistence');
@@ -80,7 +83,7 @@ try {
8083
await page.getByLabel('Title').fill('duplicate submit smoke');
8184
await page.getByLabel('Body').fill(duplicateMarker);
8285
await page.getByRole('button', { name: 'Create note' }).dblclick();
83-
await page.locator('#notes').getByText(duplicateMarker, { exact: true }).waitFor({
86+
await page.locator('#notes li').filter({ hasText: duplicateMarker }).first().waitFor({
8487
state: 'visible',
8588
});
8689
await page.waitForTimeout(1_000);
@@ -134,7 +137,7 @@ try {
134137
page.waitForURL(`${baseUrl}/notes`),
135138
page.getByRole('button', { name: 'Create note' }).click(),
136139
]);
137-
await page.locator('#notes').getByText(secondClientMarker, { exact: true }).waitFor({
140+
await page.locator('#notes li').filter({ hasText: secondClientMarker }).first().waitFor({
138141
state: 'visible',
139142
});
140143
await secondLive.locator('#live-events').getByText(secondClientMarker, { exact: true })

0 commit comments

Comments
 (0)