mirror of
https://github.com/komodorio/helm-dashboard.git
synced 2026-03-24 11:48:04 +00:00
Added "Add repo" senario testing (#502)
* Adding start of add repository flow * Adding data-cy instead of css selectors * Saving progress * Adding fixture data * Cleaning the test
This commit is contained in:
53
frontend/cypress/e2e/addRepository.cy.ts
Normal file
53
frontend/cypress/e2e/addRepository.cy.ts
Normal file
@@ -0,0 +1,53 @@
|
||||
describe("Adding repository flow", () => {
|
||||
const addChartNameInput = "[data-cy='add-chart-name']";
|
||||
const addChartUrlInput = "[data-cy='add-chart-url']";
|
||||
const addChartRepositoryButton = "[data-cy='add-chart-repository-button']";
|
||||
|
||||
it("Adding new chart repository", () => {
|
||||
cy.intercept("GET", "http://localhost:5173/status", {
|
||||
fixture: "status.json",
|
||||
}).as("status");
|
||||
|
||||
cy.intercept("GET", "http://localhost:5173/api/helm/releases", {
|
||||
fixture: "releases.json",
|
||||
}).as("releases");
|
||||
|
||||
cy.visit(
|
||||
"http://localhost:5173/#/minikube/installed?filteredNamespace=default"
|
||||
);
|
||||
|
||||
cy.get("[data-cy='navigation-link']").contains("Repository").click();
|
||||
cy.get("[data-cy='install-repository-button']").click();
|
||||
|
||||
cy.get(addChartNameInput).type("Komodorio");
|
||||
cy.get(addChartUrlInput).type("https://helm-charts.komodor.io");
|
||||
|
||||
cy.intercept("GET", "http://localhost:5173/api/helm/repositories", {
|
||||
fixture: "repositories.json",
|
||||
}).as("repositories");
|
||||
|
||||
cy.get(addChartRepositoryButton).click();
|
||||
|
||||
cy.contains("https://helm-charts.komodor.io");
|
||||
|
||||
cy.get("[data-cy='chart-viewer-install-button']")
|
||||
.eq(0)
|
||||
.click({ force: true })
|
||||
.contains("Install")
|
||||
.click();
|
||||
|
||||
cy.intercept("POST", "http://localhost:5173/api/helm/releases/default", {
|
||||
fixture: "defaultReleases.json",
|
||||
}).as("defaultReleases");
|
||||
|
||||
cy.intercept(
|
||||
"GET",
|
||||
"http://localhost:5173/api/helm/releases/default/helm-dashboard/history",
|
||||
{ fixture: "history.json" }
|
||||
).as("history");
|
||||
|
||||
cy.contains("Confirm").click();
|
||||
|
||||
cy.wait(["@defaultReleases", "@history"]);
|
||||
});
|
||||
});
|
||||
190
frontend/cypress/fixtures/defaultReleases.json
Normal file
190
frontend/cypress/fixtures/defaultReleases.json
Normal file
File diff suppressed because one or more lines are too long
5
frontend/cypress/fixtures/example.json
Normal file
5
frontend/cypress/fixtures/example.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"name": "Using fixtures to represent data",
|
||||
"email": "hello@cypress.io",
|
||||
"body": "Fixtures are a great way to mock data for responses to routes"
|
||||
}
|
||||
13
frontend/cypress/fixtures/history.json
Normal file
13
frontend/cypress/fixtures/history.json
Normal file
@@ -0,0 +1,13 @@
|
||||
[
|
||||
{
|
||||
"revision": 1,
|
||||
"updated": "2024-01-17T22:39:07.2371554+02:00",
|
||||
"status": "deployed",
|
||||
"chart": "helm-dashboard-0.1.10",
|
||||
"app_version": "1.3.3",
|
||||
"description": "Install complete",
|
||||
"chart_name": "helm-dashboard",
|
||||
"chart_ver": "0.1.10",
|
||||
"has_tests": true
|
||||
}
|
||||
]
|
||||
1
frontend/cypress/fixtures/releases.json
Normal file
1
frontend/cypress/fixtures/releases.json
Normal file
@@ -0,0 +1 @@
|
||||
[]
|
||||
6
frontend/cypress/fixtures/repositories.json
Normal file
6
frontend/cypress/fixtures/repositories.json
Normal file
@@ -0,0 +1,6 @@
|
||||
[
|
||||
{
|
||||
"name": "Komodorio",
|
||||
"url": "https://helm-charts.komodor.io"
|
||||
}
|
||||
]
|
||||
7
frontend/cypress/fixtures/status.json
Normal file
7
frontend/cypress/fixtures/status.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"CurVer": "0.0.0",
|
||||
"LatestVer": "v1.3.3",
|
||||
"Analytics": false,
|
||||
"CacheHitRatio": 0,
|
||||
"ClusterMode": false
|
||||
}
|
||||
20
frontend/cypress/support/e2e.ts
Normal file
20
frontend/cypress/support/e2e.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
// ***********************************************************
|
||||
// This example support/e2e.ts is processed and
|
||||
// loaded automatically before your test files.
|
||||
//
|
||||
// This is a great place to put global configuration and
|
||||
// behavior that modifies Cypress.
|
||||
//
|
||||
// You can change the location of this file or turn off
|
||||
// automatically serving support files with the
|
||||
// 'supportFile' configuration option.
|
||||
//
|
||||
// You can read more here:
|
||||
// https://on.cypress.io/configuration
|
||||
// ***********************************************************
|
||||
|
||||
// Import commands.js using ES2015 syntax:
|
||||
import "./commands";
|
||||
|
||||
// Alternatively you can use CommonJS syntax:
|
||||
// require('./commands')
|
||||
Reference in New Issue
Block a user