fix: add udp/ prefix to Caddy L4 UDP listen addresses and fix E2E test selectors

- Fix Caddy L4 config to use "udp/:PORT" listen syntax for UDP proxy hosts
  (previously used bare ":PORT" which Caddy treated as TCP)
- Fix TCP unused port test to check data echo instead of connection refusal
  (Docker port mapping accepts TCP handshake even without a Caddy listener)
- Fix mTLS import test to wait for sheet close and scope cert name to table
- Fix CA certificate generate test to scope name assertion to table
- Remaining L4 routing test failures are infrastructure issues with Docker
  port forwarding and Caddy L4 UDP listener startup timing

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
fuomag9
2026-03-22 22:37:39 +01:00
parent 68db449b7c
commit 7261fa24d8
3 changed files with 17 additions and 6 deletions

View File

@@ -157,7 +157,10 @@ export async function importCertificate(page: Page, config: ImportedCertificateC
await page.locator('[name="private_key_pem"]').fill(config.privateKeyPem);
await page.getByRole('button', { name: /^import certificate$/i }).click();
await expect(page.getByText(config.name).first()).toBeVisible({ timeout: 10_000 });
// Wait for the import sheet to close, then verify the cert appears in the table
await expect(page.getByRole('heading', { name: /^import certificate$/i })).not.toBeVisible({ timeout: 10_000 });
await page.waitForTimeout(500); // allow page to revalidate
await expect(page.locator('table').getByText(config.name).first()).toBeVisible({ timeout: 10_000 });
}
export async function generateCaCertificate(page: Page, config: GeneratedCaConfig): Promise<void> {
@@ -174,7 +177,8 @@ export async function generateCaCertificate(page: Page, config: GeneratedCaConfi
}
await page.getByRole('button', { name: /generate ca certificate/i }).click();
await expect(page.getByText(config.name)).toBeVisible({ timeout: 15_000 });
await expect(page.getByRole('heading', { name: /^add ca certificate$/i })).not.toBeVisible({ timeout: 10_000 });
await expect(page.locator('table').getByText(config.name).first()).toBeVisible({ timeout: 15_000 });
}
export async function issueClientCertificate(