Skip to content

Conversation

@Cerchie
Copy link
Contributor

@Cerchie Cerchie commented Dec 29, 2025

Summary of Changes

Additions

Internal for... loop added to test the provider dimension in our Artifact E2E CUJs using the provider/region enum.

Improvements

Removes the call to clickUploadFromComputePool from loadArtifacts, since it doesn't load artifacts but initiates the upload flow. We now call clickUploadFromComputePool from completeUploadFlowForComputePool, and pass the provider/region, matching on that instead of using the clusterLabel.

Also, we are now using getDatabaseResourceByLabel to retrieve the artifactViewItem, as this gets the item at the db resource level.

Lastly, we make a minor update to how we pass the provider and region info so we're not parsing providerRegion all over the place.

Click-testing instructions

gulp e2e "Flink Artifacts" should pass.

Pull request checklist

Please check if your PR fulfills the following (if applicable):

Tests

  • Added new
  • Updated existing
  • Deleted existing

Release notes

  • Does anything in this PR need to be mentioned in the user-facing CHANGELOG?

@Cerchie Cerchie requested a review from Copilot December 29, 2025 21:31
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refactors the Flink Artifacts E2E tests to parameterize provider/region combinations, enabling testing across multiple cloud providers (AWS and Azure). The changes improve test coverage by iterating over provider dimensions while streamlining the artifact upload flow logic.

Key Changes:

  • Introduced nested test structure to iterate over multiple provider/region combinations ("AWS/us-east-2" and "AZURE/eastus")
  • Refactored upload flow to accept explicit provider/region parameters instead of deriving them from cluster labels
  • Improved resource selection logic to match clusters by provider/region rather than using first-available items

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
tests/e2e/specs/flinkArtifact.spec.ts Added nested test loops for provider dimensions; refactored upload flow to use explicit provider/region parameters; improved cluster selection logic
tests/e2e/objects/views/FlinkDatabaseView.ts Changed clickUploadFromComputePool to accept provider/region parameters; added getDatabaseResourceByLabel helper method; removed return of provider/region string

@Cerchie Cerchie marked this pull request as ready for review December 29, 2025 22:24
@Cerchie Cerchie requested a review from a team as a code owner December 29, 2025 22:24
@shouples shouples linked an issue Dec 30, 2025 that may be closed by this pull request
Copy link
Contributor

@shouples shouples left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good stuff! 🎉 Only a few minor suggestions, nothing that would block merging this though

const computePools = resourcesView.ccloudFlinkComputePools;
await expect(computePools).not.toHaveCount(0);

const clusterLabel = `${provider}/${region}`;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor rename for clarity

Suggested change
const clusterLabel = `${provider}/${region}`;
const poolDescription = `${provider}/${region}`;

);
test.describe(config.testName, () => {
for (const providerRegion of providersWithRegions) {
test(`with ${providerRegion}`, async ({ page, electronApp }) => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor: I'd put the outer dimension in the describe title while keeping the test names in the test() titles like:

   for (const providerRegion of providersWithRegions) {
     test.describe(`with ${providerRegion}`, () => {
        test(config.testName, async ({ page, electronApp }) => {

test(`with ${providerRegion}`, async ({ page, electronApp }) => {
await setupTestEnvironment(config.entrypoint, page, electronApp);

const [provider, region] = providerRegion.split("/");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor: Would it be easier to set up providersWithRegions as an array of { provider: string; region: string } objects instead of strings? Looks like most functions take them as separate arguments

@Cerchie
Copy link
Contributor Author

Cerchie commented Dec 30, 2025

cool, will do a quick follow-on with these changes and a couple other renames for deceptively-named funcs

@Cerchie Cerchie merged commit 52fabc4 into main Dec 30, 2025
14 checks passed
@Cerchie Cerchie deleted the artifacts-e2e-providers branch December 30, 2025 15:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

E2Es (Artifacts) provider dimension

3 participants