mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-08-19 09:30:21 +00:00
Compare commits
13
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ca0739c57f | ||
|
|
366eaec5cf | ||
|
|
ace0e223c4 | ||
|
|
6bb42ab2a7 | ||
|
|
aa9bc71294 | ||
|
|
78a99cc6de | ||
|
|
196647bf00 | ||
|
|
70d89377ce | ||
|
|
c230d69bce | ||
|
|
53e615112d | ||
|
|
0742d8d165 | ||
|
|
e663e8face | ||
|
|
99e6ceed82 |
@@ -936,18 +936,40 @@ export class ProvidersPage extends BasePage {
|
||||
}
|
||||
}
|
||||
|
||||
private async waitForProviderLaunchChoice(): Promise<void> {
|
||||
const launchAction = this.page
|
||||
.getByRole("button", { name: "Save", exact: true })
|
||||
.or(this.page.getByRole("button", { name: "Launch scan", exact: true }));
|
||||
async completeProviderConnectionWithoutLaunchingScan(
|
||||
providerUID: string,
|
||||
timeout = 30000,
|
||||
): Promise<void> {
|
||||
await this.verifyWizardModalOpen();
|
||||
|
||||
const testConnectionButton = this.page
|
||||
.getByRole("button", {
|
||||
name: "Check connection",
|
||||
exact: true,
|
||||
})
|
||||
.or(this.page.getByRole("button", { name: "Continue", exact: true }))
|
||||
.first();
|
||||
const launchStepReady = this.page
|
||||
.getByText("Account Connected!", { exact: true })
|
||||
.or(this.page.getByText("Loading scan options...", { exact: true }))
|
||||
.or(this.page.getByRole("button", { name: "Save", exact: true }))
|
||||
.or(this.page.getByRole("button", { name: "Launch scan", exact: true }))
|
||||
.first();
|
||||
const connectionError = this.page.locator(
|
||||
"div.border-border-error p.text-text-error-primary",
|
||||
);
|
||||
|
||||
// The no-launch provider tests only need to know that the provider was saved
|
||||
// or reached the post-connection step. Some providers close the wizard right
|
||||
// after authentication; scan execution itself is covered by scans.spec.ts.
|
||||
try {
|
||||
await Promise.race([
|
||||
launchAction.waitFor({ state: "visible", timeout: 30000 }),
|
||||
connectionError.waitFor({ state: "visible", timeout: 30000 }),
|
||||
testConnectionButton
|
||||
.or(launchStepReady)
|
||||
.or(connectionError)
|
||||
.first()
|
||||
.waitFor({ state: "visible", timeout }),
|
||||
this.wizardModal.waitFor({ state: "hidden", timeout }),
|
||||
]);
|
||||
} catch {
|
||||
// Continue and inspect visible state below.
|
||||
@@ -960,53 +982,39 @@ export class ProvidersPage extends BasePage {
|
||||
);
|
||||
}
|
||||
|
||||
await expect(launchAction).toBeVisible();
|
||||
}
|
||||
if (await this.wizardModal.isHidden().catch(() => false)) {
|
||||
await this.verifyLoadProviderPageAfterNewProvider();
|
||||
|
||||
async completeProviderConnectionWithoutLaunchingScan(
|
||||
providerUID: string,
|
||||
): Promise<void> {
|
||||
await this.verifyWizardModalOpen();
|
||||
|
||||
const checkConnectionButton = this.page.getByRole("button", {
|
||||
name: "Check connection",
|
||||
exact: true,
|
||||
});
|
||||
const launchAction = this.page
|
||||
.getByRole("button", { name: "Save", exact: true })
|
||||
.or(this.page.getByRole("button", { name: "Launch scan", exact: true }));
|
||||
const connectionError = this.page.locator(
|
||||
"div.border-border-error p.text-text-error-primary",
|
||||
);
|
||||
|
||||
// The test-connection step renders its footer action only after an async
|
||||
// load (canSubmit gate). Wait for the footer to settle on an actionable
|
||||
// state (or surface a connection error) instead of reading visibility on
|
||||
// the first frame, which races the render and falls through.
|
||||
await expect(
|
||||
checkConnectionButton.or(launchAction).or(connectionError),
|
||||
).toBeVisible({ timeout: 30000 });
|
||||
|
||||
if (await connectionError.isVisible().catch(() => false)) {
|
||||
const errorText = await connectionError.textContent();
|
||||
throw new Error(
|
||||
`Test connection failed with error: ${errorText?.trim() || "Unknown error"}`,
|
||||
);
|
||||
const providerExists =
|
||||
await this.verifySingleRowForProviderUID(providerUID);
|
||||
if (!providerExists) {
|
||||
throw new Error(`Provider with UID ${providerUID} was not found.`);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// Provider-add E2E validates credentials and provider persistence only.
|
||||
// Launching one scan per provider made CI noisy and overloaded the backend;
|
||||
// scan execution itself is covered by scans.spec.ts.
|
||||
if (await checkConnectionButton.isVisible().catch(() => false)) {
|
||||
await checkConnectionButton.click();
|
||||
await this.waitForProviderLaunchChoice();
|
||||
} else {
|
||||
await expect(launchAction).toBeVisible();
|
||||
// Execute the connection step so the flow exercises provider connectivity,
|
||||
// not just credential entry. The connection is NOT required to succeed:
|
||||
// external provider connectivity (e.g. Okta) can time out in E2E, and a
|
||||
// failed/timed-out connection does not undo provider creation. The scan is
|
||||
// not launched here (covered by scans.spec.ts); the provider's presence on
|
||||
// the Providers page is the source of truth and is verified below.
|
||||
if (await testConnectionButton.isVisible().catch(() => false)) {
|
||||
await testConnectionButton.click();
|
||||
|
||||
// Let the connection check settle (success, error, or wizard close).
|
||||
await Promise.race([
|
||||
launchStepReady.waitFor({ state: "visible", timeout }).catch(() => {}),
|
||||
this.wizardModal.waitFor({ state: "hidden", timeout }).catch(() => {}),
|
||||
connectionError.waitFor({ state: "visible", timeout }).catch(() => {}),
|
||||
]);
|
||||
}
|
||||
|
||||
await this.wizardModal
|
||||
.getByRole("button", { name: "Close", exact: true })
|
||||
.click();
|
||||
if (await this.wizardModal.isVisible().catch(() => false)) {
|
||||
await this.wizardModal
|
||||
.getByRole("button", { name: "Close", exact: true })
|
||||
.click();
|
||||
}
|
||||
await expect(this.wizardModal).not.toBeVisible({ timeout: 30000 });
|
||||
await this.page.waitForURL(/\/providers/, { timeout: 30000 });
|
||||
await this.verifyLoadProviderPageAfterNewProvider();
|
||||
|
||||
@@ -32,14 +32,14 @@
|
||||
4. Fill provider details (account ID and alias)
|
||||
5. Select "credentials" authentication type
|
||||
6. Fill static credentials (access key and secret key)
|
||||
7. Confirm provider connection without launching a scan
|
||||
7. Confirm provider setup without launching a scan
|
||||
8. Verify return to Providers page
|
||||
9. Verify provider exists in Providers table
|
||||
|
||||
### Expected Result
|
||||
|
||||
- AWS provider successfully added with static credentials
|
||||
- Provider connection validated without launching a scan
|
||||
- Provider credentials saved without launching a scan
|
||||
- User returned to Providers page
|
||||
- Provider appears in Providers table with the expected UID
|
||||
|
||||
@@ -48,8 +48,8 @@
|
||||
- Provider page loads correctly
|
||||
- Connect account page displays AWS option
|
||||
- Credentials form accepts static credentials
|
||||
- Launch step appears
|
||||
- Successful return to Providers page after closing the launch step
|
||||
- Connection or launch step appears
|
||||
- Successful return to Providers page after closing the wizard
|
||||
- Provider exists in Providers table (verified by account ID)
|
||||
- Provider UID matches the expected value
|
||||
|
||||
@@ -88,14 +88,14 @@
|
||||
4. Fill provider details (account ID and alias)
|
||||
5. Select "role" authentication type
|
||||
6. Fill role credentials (access key, secret key, and role ARN)
|
||||
7. Confirm provider connection without launching a scan
|
||||
7. Confirm provider setup without launching a scan
|
||||
8. Verify return to Providers page
|
||||
9. Verify provider exists in Providers table
|
||||
|
||||
### Expected Result
|
||||
|
||||
- AWS provider successfully added with role credentials
|
||||
- Provider connection validated without launching a scan
|
||||
- Provider credentials saved without launching a scan
|
||||
- User returned to Providers page
|
||||
- Provider appears in Providers table with the expected UID
|
||||
|
||||
@@ -104,8 +104,8 @@
|
||||
- Provider page loads correctly
|
||||
- Connect account page displays AWS option
|
||||
- Role credentials form accepts all required fields
|
||||
- Launch step appears
|
||||
- Successful return to Providers page after closing the launch step
|
||||
- Connection or launch step appears
|
||||
- Successful return to Providers page after closing the wizard
|
||||
- Provider exists in Providers table (verified by account ID)
|
||||
- Provider UID matches the expected value
|
||||
|
||||
@@ -144,14 +144,14 @@
|
||||
3. Select Azure provider type
|
||||
4. Fill provider details (subscription ID and alias)
|
||||
5. Fill Azure credentials (client ID, client secret, tenant ID)
|
||||
6. Confirm provider connection without launching a scan
|
||||
6. Confirm provider setup without launching a scan
|
||||
7. Verify return to Providers page
|
||||
8. Verify provider exists in Providers table
|
||||
|
||||
### Expected Result
|
||||
|
||||
- Azure provider successfully added with static credentials
|
||||
- Provider connection validated without launching a scan
|
||||
- Provider credentials saved without launching a scan
|
||||
- User returned to Providers page
|
||||
- Provider appears in Providers table with the expected UID
|
||||
|
||||
@@ -160,8 +160,8 @@
|
||||
- Provider page loads correctly
|
||||
- Connect account page displays Azure option
|
||||
- Azure credentials form accepts all required fields
|
||||
- Launch step appears
|
||||
- Successful return to Providers page after closing the launch step
|
||||
- Connection or launch step appears
|
||||
- Successful return to Providers page after closing the wizard
|
||||
- Provider exists in Providers table (verified by subscription ID)
|
||||
- Provider UID matches the expected value
|
||||
|
||||
@@ -201,14 +201,14 @@
|
||||
4. Fill provider details (domain ID and alias)
|
||||
5. Select static credentials type
|
||||
6. Fill M365 credentials (client ID, client secret, tenant ID)
|
||||
7. Confirm provider connection without launching a scan
|
||||
7. Confirm provider setup without launching a scan
|
||||
8. Verify return to Providers page
|
||||
9. Verify provider exists in Providers table
|
||||
|
||||
### Expected Result
|
||||
|
||||
- M365 provider successfully added with static credentials
|
||||
- Provider connection validated without launching a scan
|
||||
- Provider credentials saved without launching a scan
|
||||
- User returned to Providers page
|
||||
- Provider appears in Providers table with the expected UID
|
||||
|
||||
@@ -217,8 +217,8 @@
|
||||
- Provider page loads correctly
|
||||
- Connect account page displays M365 option
|
||||
- M365 credentials form accepts all required fields
|
||||
- Launch step appears
|
||||
- Successful return to Providers page after closing the launch step
|
||||
- Connection or launch step appears
|
||||
- Successful return to Providers page after closing the wizard
|
||||
- Provider exists in Providers table (verified by domain ID)
|
||||
- Provider UID matches the expected value
|
||||
|
||||
@@ -258,14 +258,14 @@
|
||||
4. Fill provider details (domain ID and alias)
|
||||
5. Select certificate credentials type
|
||||
6. Fill M365 certificate credentials (client ID, tenant ID, certificate content)
|
||||
7. Confirm provider connection without launching a scan
|
||||
7. Confirm provider setup without launching a scan
|
||||
8. Verify return to Providers page
|
||||
9. Verify provider exists in Providers table
|
||||
|
||||
### Expected Result
|
||||
|
||||
- M365 provider successfully added with certificate credentials
|
||||
- Provider connection validated without launching a scan
|
||||
- Provider credentials saved without launching a scan
|
||||
- User returned to Providers page
|
||||
- Provider appears in Providers table with the expected UID
|
||||
|
||||
@@ -274,8 +274,8 @@
|
||||
- Provider page loads correctly
|
||||
- Connect account page displays M365 option
|
||||
- Certificate credentials form accepts all required fields
|
||||
- Launch step appears
|
||||
- Successful return to Providers page after closing the launch step
|
||||
- Connection or launch step appears
|
||||
- Successful return to Providers page after closing the wizard
|
||||
- Provider exists in Providers table (verified by domain ID)
|
||||
- Provider UID matches the expected value
|
||||
|
||||
@@ -316,14 +316,14 @@
|
||||
4. Fill provider details (context and alias)
|
||||
5. Verify credentials page is loaded
|
||||
6. Fill Kubernetes credentials (kubeconfig content)
|
||||
7. Confirm provider connection without launching a scan
|
||||
7. Confirm provider setup without launching a scan
|
||||
8. Verify return to Providers page
|
||||
9. Verify provider exists in Providers table
|
||||
|
||||
### Expected Result
|
||||
|
||||
- Kubernetes provider successfully added with kubeconfig content
|
||||
- Provider connection validated without launching a scan
|
||||
- Provider credentials saved without launching a scan
|
||||
- User returned to Providers page
|
||||
- Provider appears in Providers table with the expected UID
|
||||
|
||||
@@ -334,8 +334,8 @@
|
||||
- Provider details form accepts context and alias
|
||||
- Credentials page loads with kubeconfig content field
|
||||
- Kubeconfig content is properly filled in the correct field
|
||||
- Launch step appears
|
||||
- Successful return to Providers page after closing the launch step
|
||||
- Connection or launch step appears
|
||||
- Successful return to Providers page after closing the wizard
|
||||
- Provider exists in Providers table (verified by context)
|
||||
- Provider UID matches the expected value
|
||||
|
||||
@@ -377,14 +377,14 @@
|
||||
4. Fill provider details (project ID and alias)
|
||||
5. Select service account credentials type
|
||||
6. Fill GCP service account key credentials
|
||||
7. Confirm provider connection without launching a scan
|
||||
7. Confirm provider setup without launching a scan
|
||||
8. Verify return to Providers page
|
||||
9. Verify provider exists in Providers table
|
||||
|
||||
### Expected Result
|
||||
|
||||
- GCP provider successfully added with service account key
|
||||
- Provider connection validated without launching a scan
|
||||
- Provider credentials saved without launching a scan
|
||||
- User returned to Providers page
|
||||
- Provider appears in Providers table with the expected UID
|
||||
|
||||
@@ -395,8 +395,8 @@
|
||||
- Provider details form accepts project ID and alias
|
||||
- Service account credentials page loads with service account key field
|
||||
- Service account key is properly filled in the correct field
|
||||
- Launch step appears
|
||||
- Successful return to Providers page after closing the launch step
|
||||
- Connection or launch step appears
|
||||
- Successful return to Providers page after closing the wizard
|
||||
- Provider exists in Providers table (verified by project ID)
|
||||
- Provider UID matches the expected value
|
||||
|
||||
@@ -439,14 +439,14 @@
|
||||
4. Fill provider details (username and alias)
|
||||
5. Select personal access token credentials type
|
||||
6. Fill GitHub personal access token credentials
|
||||
7. Confirm provider connection without launching a scan
|
||||
7. Confirm provider setup without launching a scan
|
||||
8. Verify return to Providers page
|
||||
9. Verify provider exists in Providers table
|
||||
|
||||
### Expected Result
|
||||
|
||||
- GitHub provider successfully added with personal access token
|
||||
- Provider connection validated without launching a scan
|
||||
- Provider credentials saved without launching a scan
|
||||
- User returned to Providers page
|
||||
- Provider appears in Providers table with the expected UID
|
||||
|
||||
@@ -457,8 +457,8 @@
|
||||
- Provider details form accepts username and alias
|
||||
- Personal access token credentials page loads with token field
|
||||
- Personal access token is properly filled in the correct field
|
||||
- Launch step appears
|
||||
- Successful return to Providers page after closing the launch step
|
||||
- Connection or launch step appears
|
||||
- Successful return to Providers page after closing the wizard
|
||||
- Provider exists in Providers table (verified by username)
|
||||
- Provider UID matches the expected value
|
||||
|
||||
@@ -499,14 +499,14 @@
|
||||
4. Fill provider details (username and alias)
|
||||
5. Select GitHub App credentials type
|
||||
6. Fill GitHub App credentials (App ID and private key)
|
||||
7. Confirm provider connection without launching a scan
|
||||
7. Confirm provider setup without launching a scan
|
||||
8. Verify return to Providers page
|
||||
9. Verify provider exists in Providers table
|
||||
|
||||
### Expected Result
|
||||
|
||||
- GitHub provider successfully added with GitHub App credentials
|
||||
- Provider connection validated without launching a scan
|
||||
- Provider credentials saved without launching a scan
|
||||
- User returned to Providers page
|
||||
- Provider appears in Providers table with the expected UID
|
||||
|
||||
@@ -517,8 +517,8 @@
|
||||
- Provider details form accepts username and alias
|
||||
- GitHub App credentials page loads with App ID and private key fields
|
||||
- GitHub App credentials are properly filled in the correct fields
|
||||
- Launch step appears
|
||||
- Successful return to Providers page after closing the launch step
|
||||
- Connection or launch step appears
|
||||
- Successful return to Providers page after closing the wizard
|
||||
- Provider exists in Providers table (verified by username)
|
||||
- Provider UID matches the expected value
|
||||
|
||||
@@ -560,14 +560,14 @@
|
||||
4. Fill provider details (organization name and alias)
|
||||
5. Select personal access token credentials type
|
||||
6. Fill GitHub organization personal access token credentials
|
||||
7. Confirm provider connection without launching a scan
|
||||
7. Confirm provider setup without launching a scan
|
||||
8. Verify return to Providers page
|
||||
9. Verify provider exists in Providers table
|
||||
|
||||
### Expected Result
|
||||
|
||||
- GitHub provider successfully added with organization personal access token
|
||||
- Provider connection validated without launching a scan
|
||||
- Provider credentials saved without launching a scan
|
||||
- User returned to Providers page
|
||||
- Provider appears in Providers table with the expected UID
|
||||
|
||||
@@ -578,8 +578,8 @@
|
||||
- Provider details form accepts organization name and alias
|
||||
- Personal access token credentials page loads with token field
|
||||
- Organization personal access token is properly filled in the correct field
|
||||
- Launch step appears
|
||||
- Successful return to Providers page after closing the launch step
|
||||
- Connection or launch step appears
|
||||
- Successful return to Providers page after closing the wizard
|
||||
- Provider exists in Providers table (verified by organization name)
|
||||
- Provider UID matches the expected value
|
||||
|
||||
@@ -621,14 +621,14 @@
|
||||
5. Select "role" authentication type
|
||||
6. Switch authentication method to "Use AWS SDK default credentials"
|
||||
7. Fill role ARN using AWS SDK credential inputs
|
||||
8. Confirm provider connection without launching a scan
|
||||
8. Confirm provider setup without launching a scan
|
||||
9. Verify return to Providers page
|
||||
10. Verify provider exists in Providers table
|
||||
|
||||
### Expected Result
|
||||
|
||||
- AWS provider successfully added using AWS SDK default credentials to assume the role
|
||||
- Provider connection validated without launching a scan
|
||||
- Provider credentials saved without launching a scan
|
||||
- User returned to Providers page
|
||||
- Provider appears in Providers table with the expected UID
|
||||
|
||||
@@ -638,8 +638,8 @@
|
||||
- Connect account page displays AWS option
|
||||
- Credentials form exposes AWS SDK default authentication method
|
||||
- Role ARN field accepts provided value when SDK method is selected
|
||||
- Launch step appears
|
||||
- Successful return to Providers page after closing the launch step
|
||||
- Connection or launch step appears
|
||||
- Successful return to Providers page after closing the wizard
|
||||
- Provider exists in Providers table (verified by account ID)
|
||||
- Provider UID matches the expected value
|
||||
|
||||
@@ -679,14 +679,14 @@
|
||||
4. Fill provider details (tenancy ID and alias)
|
||||
5. Verify OCI credentials page is loaded
|
||||
6. Fill OCI credentials (user ID, fingerprint, key content, region)
|
||||
7. Confirm provider connection without launching a scan
|
||||
7. Confirm provider setup without launching a scan
|
||||
8. Verify return to Providers page
|
||||
9. Verify provider exists in Providers table
|
||||
|
||||
### Expected Result
|
||||
|
||||
- OCI provider successfully added with API Key credentials
|
||||
- Provider connection validated without launching a scan
|
||||
- Provider credentials saved without launching a scan
|
||||
- User returned to Providers page
|
||||
- Provider appears in Providers table with the expected UID
|
||||
|
||||
@@ -697,8 +697,8 @@
|
||||
- Provider details form accepts tenancy ID and alias
|
||||
- OCI credentials page loads
|
||||
- Credentials form accepts all required fields (user ID, fingerprint, key content, region)
|
||||
- Launch step appears
|
||||
- Successful return to Providers page after closing the launch step
|
||||
- Connection or launch step appears
|
||||
- Successful return to Providers page after closing the wizard
|
||||
- Provider exists in Providers table (verified by tenancy ID)
|
||||
- Provider UID matches the expected value
|
||||
|
||||
@@ -798,14 +798,14 @@
|
||||
6. Select static credentials type
|
||||
7. Verify static credentials page is loaded
|
||||
8. Fill AlibabaCloud credentials (access key ID and access key secret)
|
||||
9. Confirm provider connection without launching a scan
|
||||
9. Confirm provider setup without launching a scan
|
||||
10. Verify return to Providers page
|
||||
11. Verify provider exists in Providers table
|
||||
|
||||
### Expected Result
|
||||
|
||||
- AlibabaCloud provider successfully added with static credentials
|
||||
- Provider connection validated without launching a scan
|
||||
- Provider credentials saved without launching a scan
|
||||
- User returned to Providers page
|
||||
- Provider appears in Providers table with the expected UID
|
||||
|
||||
@@ -817,8 +817,8 @@
|
||||
- Credentials page loads with credential type selection
|
||||
- Static credentials page loads with access key ID and access key secret fields
|
||||
- Static credentials are properly filled in the correct fields
|
||||
- Launch step appears
|
||||
- Successful return to Providers page after closing the launch step
|
||||
- Connection or launch step appears
|
||||
- Successful return to Providers page after closing the wizard
|
||||
- Provider exists in Providers table (verified by account ID)
|
||||
- Provider UID matches the expected value
|
||||
|
||||
@@ -860,14 +860,14 @@
|
||||
6. Select RAM Role credentials type
|
||||
7. Verify RAM Role credentials page is loaded
|
||||
8. Fill AlibabaCloud RAM Role credentials (access key ID, access key secret, and role ARN)
|
||||
9. Confirm provider connection without launching a scan
|
||||
9. Confirm provider setup without launching a scan
|
||||
10. Verify return to Providers page
|
||||
11. Verify provider exists in Providers table
|
||||
|
||||
### Expected Result
|
||||
|
||||
- AlibabaCloud provider successfully added with RAM Role credentials
|
||||
- Provider connection validated without launching a scan
|
||||
- Provider credentials saved without launching a scan
|
||||
- User returned to Providers page
|
||||
- Provider appears in Providers table with the expected UID
|
||||
|
||||
@@ -879,8 +879,8 @@
|
||||
- Credentials page loads with credential type selection
|
||||
- RAM Role credentials page loads with access key ID, access key secret, and role ARN fields
|
||||
- RAM Role credentials are properly filled in the correct fields
|
||||
- Launch step appears
|
||||
- Successful return to Providers page after closing the launch step
|
||||
- Connection or launch step appears
|
||||
- Successful return to Providers page after closing the wizard
|
||||
- Provider exists in Providers table (verified by account ID)
|
||||
- Provider UID matches the expected value
|
||||
|
||||
@@ -978,14 +978,14 @@
|
||||
4. Fill provider details (customer ID and alias)
|
||||
5. Verify Google Workspace credentials page is loaded
|
||||
6. Fill Google Workspace credentials (customer ID, service account JSON, delegated user email)
|
||||
7. Confirm provider connection without launching a scan
|
||||
7. Confirm provider setup without launching a scan
|
||||
8. Verify return to Providers page
|
||||
9. Verify provider exists in Providers table
|
||||
|
||||
### Expected Result
|
||||
|
||||
- Google Workspace provider successfully added with Service Account credentials
|
||||
- Provider connection validated without launching a scan
|
||||
- Provider credentials saved without launching a scan
|
||||
- User returned to Providers page
|
||||
- Provider appears in Providers table with the expected UID
|
||||
|
||||
@@ -998,8 +998,8 @@
|
||||
- Customer ID help text is visible with instructions on finding the Customer ID
|
||||
- Service account JSON field accepts multi-line formatted JSON
|
||||
- Delegated user email field validates email format
|
||||
- Launch step appears
|
||||
- Successful return to Providers page after closing the launch step
|
||||
- Connection or launch step appears
|
||||
- Successful return to Providers page after closing the wizard
|
||||
- Provider exists in Providers table (verified by customer ID)
|
||||
- Provider UID matches the expected value
|
||||
|
||||
@@ -1042,14 +1042,14 @@
|
||||
4. Fill provider details (team ID and alias)
|
||||
5. Verify Vercel credentials page is loaded
|
||||
6. Fill Vercel credentials (API token)
|
||||
7. Confirm provider connection without launching a scan
|
||||
7. Confirm provider setup without launching a scan
|
||||
8. Verify return to Providers page
|
||||
9. Verify provider exists in Providers table
|
||||
|
||||
### Expected Result
|
||||
|
||||
- Vercel provider successfully added with API Token credentials
|
||||
- Provider connection validated without launching a scan
|
||||
- Provider credentials saved without launching a scan
|
||||
- User returned to Providers page
|
||||
- Provider appears in Providers table with the expected UID
|
||||
|
||||
@@ -1060,8 +1060,8 @@
|
||||
- Provider details form accepts team ID and alias
|
||||
- Credentials page loads with the API Token field
|
||||
- API Token is properly filled in the correct (masked) field
|
||||
- Launch step appears
|
||||
- Successful return to Providers page after closing the launch step
|
||||
- Connection or launch step appears
|
||||
- Successful return to Providers page after closing the wizard
|
||||
- Provider exists in Providers table (verified by team ID)
|
||||
- Provider UID matches the expected value
|
||||
|
||||
@@ -1092,6 +1092,7 @@
|
||||
- Environment variables configured: E2E_OKTA_DOMAIN, E2E_OKTA_CLIENT_ID, E2E_OKTA_BASE64_PRIVATE_KEY
|
||||
- Remove any existing provider with the same Org Domain before starting the test
|
||||
- This test must be run serially and never in parallel with other tests, as it requires the Org Domain not to be already registered beforehand.
|
||||
- The test validates provider creation and connection only; scan execution is covered by the Scans E2E suite.
|
||||
|
||||
### Flow Steps
|
||||
|
||||
@@ -1101,16 +1102,16 @@
|
||||
4. Fill provider details (org domain and alias)
|
||||
5. Verify Okta credentials page is loaded
|
||||
6. Fill Okta credentials (client ID and PEM-encoded private key)
|
||||
7. Launch initial scan
|
||||
8. Verify redirect to Scans page
|
||||
9. Verify scheduled scan status in Scans table (provider exists and scan name is "scheduled scan")
|
||||
7. Confirm provider setup without launching a scan
|
||||
8. Verify return to Providers page
|
||||
9. Verify provider exists in Providers table
|
||||
|
||||
### Expected Result
|
||||
|
||||
- Okta provider successfully added with OAuth 2.0 Private Key JWT credentials
|
||||
- Initial scan launched successfully
|
||||
- User redirected to Scans page
|
||||
- Scheduled scan appears in Scans table with correct provider and scan name
|
||||
- Provider credentials saved successfully without launching a scan
|
||||
- User returned to Providers page
|
||||
- Provider appears in Providers table with the expected UID
|
||||
|
||||
### Key verification points
|
||||
|
||||
@@ -1119,10 +1120,9 @@
|
||||
- Provider details form accepts org domain (Okta-managed domain, e.g. acme.okta.com) and alias
|
||||
- Credentials page loads with Client ID input and Private Key textarea
|
||||
- Credentials are properly filled in the correct fields
|
||||
- Launch scan page appears
|
||||
- Successful redirect to Scans page after scan launch
|
||||
- Provider exists in Scans table (verified by org domain)
|
||||
- Scan name field contains "scheduled scan"
|
||||
- Connection or launch step appears
|
||||
- Successful return to Providers page after closing the wizard
|
||||
- Provider exists in Providers table (verified by org domain)
|
||||
|
||||
### Notes
|
||||
|
||||
|
||||
Reference in New Issue
Block a user