chore: add E2E tests for Flink UDFs#3386
Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds Playwright E2E coverage for Flink UDF user flows and introduces a reusable Playwright fixture to create/clean up Flink artifacts (to reduce leaked test resources), along with small supporting updates to tags/CI defaults and accessibility labeling needed for stable selectors.
Changes:
- Added new E2E specs covering guided UDF creation, SQL registration document generation, and UDF deletion (parameterized by cloud provider/region).
- Introduced an
artifactPlaywright fixture (plusArtifactConfigtyping) to upload an artifact for a test and delete it afterward. - Added a new
@flink-udfstag and included it in default CI E2E tag sets; added an accessibility label for Flink UDF tree items.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/e2e/types/artifact.ts | Adds ArtifactConfig type for configuring artifact fixture behavior. |
| tests/e2e/tags.ts | Introduces Tag.FlinkUDFs (@flink-udfs). |
| tests/e2e/specs/flinkUdf.spec.ts | New E2E tests for UDF create/open-SQL-template/delete flows. |
| tests/e2e/objects/views/FlinkDatabaseView.ts | Adds UDF-related view helpers; refactors artifact deletion to use search-based lookup. |
| tests/e2e/baseTest.ts | Adds artifactConfig option + artifact fixture with upload + teardown deletion behavior. |
| src/models/flinkUDF.ts | Adds accessibilityInformation.label for UDF tree items (enables stable aria-label selectors). |
| service.yml | Adds @flink-udfs to default E2E tag sets. |
| .semaphore/semaphore.yml | Adds @flink-udfs to default E2E tag sets for Semaphore promotions. |
|
fd942d2 to
7da14b0
Compare
…gistration/deletion
Co-authored-by: Copilot <copilot@github.com>
c1c3e87 to
a261c23
Compare
|
Noel Cothren (noeldevelops)
left a comment
There was a problem hiding this comment.
looks good ✅✅✅✅✅✅✅
| // server-side cleanup: if the happy-path test didn't reach its inline delete | ||
| // (e.g. an earlier assertion failed), drop the orphaned artifact here so | ||
| // reruns don't pile up dangling artifacts on the cluster. Best-effort: a | ||
| // failed cleanup must not mask the original test failure, hence the catch. |
| * Configuration options for creating an artifact with the {@linkcode artifact} fixture. | ||
| */ | ||
| artifactConfig: ArtifactConfig | undefined; |




Summary of Changes
Sample run: https://semaphore.ci.confluent.io/workflows/fe780ab0-c8d1-4314-8be7-127b44de7217?pipeline_id=9b07a948-933a-4cfd-9ec5-17047030507c
Closes #2482, and also closes #3110 by setting up the
artifactplaywright fixture.Pull request checklist
Please check if your PR fulfills the following (if applicable):
Tests
Release notes