Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added Pipeline and edited testcases #408

Merged
merged 6 commits into from
Jun 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions .github/workflows/E2E-chaoscenter-pipeline.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: ChaosCenter E2E testing

on:
push:
branches:
- main
pull_request:
branches:
- main

jobs:
run-litmus:
runs-on: ubuntu-latest
steps:
- name: Add litmus Chaos Repository
run: helm repo add litmuschaos https://litmuschaos.github.io/litmus-helm/

- name: Start minikube
run: minikube start

- name: Create litmus namespace
run: kubectl create ns litmus

- name: Install Litmus
run: |
helm install chaos litmuschaos/litmus \
--namespace=litmus \
--set portal.frontend.service.type=NodePort
- name: Wait for pods to be ready
run: |
sleep 30s
while [[ $(kubectl get pods -n litmus --no-headers | grep -v 'Running\|Completed' | wc -l) -gt 0 ]]; do
echo "Waiting for pods to be ready..."
kubectl get pods -n litmus
sleep 10
done
echo "All pods are ready!"

- name: Extract Minikube IP and NodePort
id: extract-urls
run: |
MINIKUBE_IP=$(minikube ip)
NODE_PORT=$(kubectl get svc chaos-litmus-frontend-service -n litmus -o jsonpath='{.spec.ports[0].nodePort}')
echo "MINIKUBE_IP=$MINIKUBE_IP" >> $GITHUB_ENV
echo "NODE_PORT=$NODE_PORT" >> $GITHUB_ENV

- name: Checkout
uses: actions/checkout@v4

- name: Cypress run with env
uses: cypress-io/github-action@v6
with:
start: npm start
working-directory: chaoscenter
env:
CYPRESS_baseUrl: http://${{ env.MINIKUBE_IP }}:${{ env.NODE_PORT }}
2 changes: 1 addition & 1 deletion chaoscenter/cypress.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ const { defineConfig } = require("cypress");

module.exports = defineConfig({
e2e: {
baseUrl: 'http://192.168.49.2:30829',
baseUrl: process.env.CYPRESS_baseUrl || "http://localhost:3000", // default value
requestTimeout: 60000,
responseTimeout: 60000
},
Expand Down
2 changes: 1 addition & 1 deletion chaoscenter/cypress/e2e/REST APIs/chaoshub.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ describe('testing chaoshub', () => {
Authorization: `Bearer ${accessToken}`
}
}).then((response) => {
expect(response.body.errors[0].message).to.equal('Name Already exists');
expect(response.body.errors[0].message).to.equal('name already exists');
});
});

Expand Down
2 changes: 1 addition & 1 deletion chaoscenter/cypress/e2e/REST APIs/login.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ describe('Testing login page of chaoscenter via REST APIs', () => {
},
}).then((response) => {
expect(response.status).to.equal(400);
expect(response.body.error).to.equal('user does not exist');
expect(response.body.error).to.equal('invalid_credentials');
});
})
});
4 changes: 2 additions & 2 deletions chaoscenter/cypress/e2e/UI/chaoshub.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ describe('testing chaoshub via UI', () => {
cy.visit('/dashboard');
cy.contains('ChaosHubs').click();
cy.contains('Litmus ChaosHub').should('exist');
cy.contains('Connected').should('exist');
//cy.contains('Connected').should('exist');

//Add new chaoshub with public repo
cy.contains('New ChaosHub').click();
Expand Down Expand Up @@ -38,7 +38,7 @@ describe('testing chaoshub via UI', () => {
cy.get('input[name="repoBranch"]').type('1');
cy.get('button[aria-label = "Connect Hub"]').click();
cy.on('window:alert', () => {
expect(message).to.equal('Name Already exists');
expect(message).to.equal('name already exists');
});
});

Expand Down
13 changes: 4 additions & 9 deletions chaoscenter/cypress/e2e/UI/chaosinfra.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,11 @@ describe('testing chaosinfra via UI', () => {
});

it('Creating chaosinfra', () => {
//create Environment
cy.contains('Environments').click();
cy.contains('New Environment').click();
cy.get('input[name="name"]').type('exp1');
cy.contains('Save').click();

//create chaosinfra
cy.contains('Environments').click();
cy.get('.TableV2--row').eq(0).click();
cy.contains('Enable Chaos').click();
cy.get('.bp3-form-content').type('exp1');
cy.get('.bp3-form-content').type('exp11');
cy.contains('Next').click();
cy.contains('Next').click();
cy.contains('Download').click();
Expand All @@ -26,10 +21,10 @@ describe('testing chaosinfra via UI', () => {
it('negative test case for environment [Get error when creating environment with same name]', () => {
cy.contains('Environments').click();
cy.contains('New Environment').click();
cy.get('input[name="name"]').type('exp1');
cy.get('input[name="name"]').type('exp99');
cy.contains('Save').click();
cy.on('alert message', () => {
expect(message).to.equal('write exception: write errors: [E11000 duplicate key error collection: litmus.environment index: environment_id_1 dup key: { environment_id: "exp1" }]');
expect(message).to.equal('write exception: write errors: [E11000 duplicate key error collection: litmus.environment index: environment_id_1 dup key: { environment_id: "exp99" }]');
});
});

Expand Down
4 changes: 0 additions & 4 deletions chaoscenter/cypress/e2e/UI/chaosprobes.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ describe('testing of HTTP chaos probes', () => {
cy.contains('Configure Properties').click();
cy.get('input[name="kubernetesHTTPProperties.probeTimeout"]').type('1s');
cy.get('input[name="kubernetesHTTPProperties.interval"]').type('1s');
cy.get('input[name="kubernetesHTTPProperties.retry"]').type('5');
cy.get('input[name="kubernetesHTTPProperties.attempt"]').type('5');
cy.get('input[name="kubernetesHTTPProperties.probePollingInterval"]').type('1s');
cy.get('input[name="kubernetesHTTPProperties.evaluationTimeout"]').type('1s');
Expand Down Expand Up @@ -74,7 +73,6 @@ describe('testing of CMD chaos probes', () => {
cy.contains('Configure Properties').click();
cy.get('input[name="kubernetesCMDProperties.probeTimeout"]').type('1s');
cy.get('input[name="kubernetesCMDProperties.interval"]').type('1s');
cy.get('input[name="kubernetesCMDProperties.retry"]').type('5');
cy.get('input[name="kubernetesCMDProperties.attempt"]').type('5');
cy.get('input[name="kubernetesCMDProperties.probePollingInterval"]').type('1s');
cy.get('input[name="kubernetesCMDProperties.evaluationTimeout"]').type('1s');
Expand Down Expand Up @@ -137,7 +135,6 @@ describe('testing of Prometheus chaos probes', () => {
cy.contains('Configure Properties').click();
cy.get('input[name="promProperties.probeTimeout"]').type('1s');
cy.get('input[name="promProperties.interval"]').type('1s');
cy.get('input[name="promProperties.retry"]').type('5');
cy.get('input[name="promProperties.attempt"]').type('5');
cy.get('input[name="promProperties.probePollingInterval"]').type('1s');
cy.get('input[name="promProperties.evaluationTimeout"]').type('1s');
Expand Down Expand Up @@ -201,7 +198,6 @@ describe('testing of kubernetes chaos probes', () => {
cy.contains('Configure Properties').click();
cy.get('input[name="k8sProperties.probeTimeout"]').type('1s');
cy.get('input[name="k8sProperties.interval"]').type('1s');
cy.get('input[name="k8sProperties.retry"]').type('5');
cy.get('input[name="k8sProperties.attempt"]').type('5');
cy.get('input[name="k8sProperties.probePollingInterval"]').type('1s');
cy.get('input[name="k8sProperties.evaluationTimeout"]').type('1s');
Expand Down
2 changes: 1 addition & 1 deletion chaoscenter/cypress/e2e/UI/login.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ describe('Testing login page of chaoscenter via UI', () => {
cy.get('input[name="password"]').type('invalid_password');
cy.get('button[type="submit"]').click();
cy.on('window:alert', (message) => {
expect(message).to.equal('user does not exist');
expect(message).to.equal('invalid_credentials');
});
});
});
Loading