Skip to content

✅[QA REGRESSION PASSED]: Ready to Merge into MAIN #461

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

Merged
merged 39 commits into from
Sep 2, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
716d408
GX-30150: new test suite added
JonatanDavidGauto Aug 23, 2023
31f793a
blackhole starts
Missael1494 Aug 23, 2023
fec9d73
GX-29706: new test suite added
Missael1494 Aug 23, 2023
2897937
test(GX-29736): new automated tests for radioButtons
Missael1494 Aug 25, 2023
ab714b7
test(GX-29736): new automated tests for radioBttns
Missael1494 Aug 25, 2023
3224ffa
test(GX-29736): added test cases
Missael1494 Aug 25, 2023
7216714
radiobuttons
Angelicamendozaa672 Aug 25, 2023
a4f64e0
GX-30150: Se han terminado los TC's, Dani no te enojes por no haber c…
JonatanDavidGauto Aug 28, 2023
3a85532
GX-31663 new autonated test for radio buttons
Braian1396 Aug 28, 2023
266a7e3
GX-31663 Commit con cambios realizados en el CI
Braian1396 Aug 28, 2023
0e4b97c
test 1 radio button
Angelicamendozaa672 Aug 29, 2023
ecb97c2
test 2y3 radio button
Angelicamendozaa672 Aug 29, 2023
c8db948
Primer commit
Aug 30, 2023
d2a15cb
GX-32081 Avances del TC 1
Aug 30, 2023
386758c
TC 1 correccion
Aug 30, 2023
6151bb3
Merge branch 'QA' of https://github.com/upex-galaxy/L1-cypex-demo int…
Missael1494 Aug 30, 2023
a439919
GX-29736: cierre de test case
Missael1494 Aug 30, 2023
a29d5ab
Actualizacion TC2
Aug 31, 2023
96e4c0a
Fix TC2
Aug 31, 2023
8d30ac9
Fix GX-32081
Aug 31, 2023
93472e6
Fix RGB
Aug 31, 2023
88fc37f
GX-29736 eliminando carpeta de test no correspondiente
Missael1494 Aug 31, 2023
b311e6a
GX-32427 el primer commit
yeyu2083 Aug 31, 2023
03c4293
Realice mi 1er TC
yeyu2083 Aug 31, 2023
8eeb16b
Finalizo los TC2 y TC3
yeyu2083 Sep 1, 2023
8e450cb
GX-32427: Nos olvidamos de poner el id en los otros commit, no figura…
yeyu2083 Sep 1, 2023
0aa4bf2
Merge branch 'QA' into GX-30150/test/radio-buttons
ZwitterKaneda Sep 2, 2023
604dc65
Merge pull request #453 from upex-galaxy/GX-30150/test/radio-buttons
ZwitterKaneda Sep 2, 2023
181d1ae
Merge branch 'QA' into GX-31663-�-tools-qa-elements-radio-buttons
ZwitterKaneda Sep 2, 2023
8137745
Merge pull request #454 from upex-galaxy/GX-31663-�-tools-qa-elements…
ZwitterKaneda Sep 2, 2023
8be2d21
Merge branch 'QA' into GX-30846/test/radio-buttons
ZwitterKaneda Sep 2, 2023
92341e7
Merge pull request #455 from upex-galaxy/GX-30846/test/radio-buttons
ZwitterKaneda Sep 2, 2023
42575cd
Merge branch 'QA' into GX-32081-✅-tools-qa-elements-text-box-fill-for…
ZwitterKaneda Sep 2, 2023
a3ca887
Merge pull request #456 from upex-galaxy/GX-32081-✅-tools-qa-elements…
ZwitterKaneda Sep 2, 2023
0d9b569
Merge branch 'QA' into GX-29736/test/radio-buttons
ZwitterKaneda Sep 2, 2023
48519b5
Merge pull request #457 from upex-galaxy/GX-29736/test/radio-buttons
ZwitterKaneda Sep 2, 2023
2d63128
Merge branch 'QA' into GX-32427-✅-tools-qa-elements-radio-buttons
ZwitterKaneda Sep 2, 2023
09081ed
Merge pull request #460 from upex-galaxy/GX-32427-✅-tools-qa-elements…
ZwitterKaneda Sep 2, 2023
2b743fb
quitando un path colado en el CI-regressionQA.yml
ZwitterKaneda Sep 2, 2023
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
4 changes: 2 additions & 2 deletions .github/workflows/CI-Suite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ jobs:
with:
browser: chrome
command: | #EDITAR AQUÍ EL ARCHIVO SUITE A EJECUTAR:
yarn file cypress/e2e/Tests/Elements/GX-29819-RadioButtons.cy.js
yarn file cypress/e2e/Tests/Elements/GX-32427-RadioButtons.cy.js

- name: ✅Import Test Results to Xray
if: always()
Expand All @@ -64,7 +64,7 @@ jobs:
password: ${{secrets.XRAY_CLIENT_SECRET}}
testFormat: 'junit' #OPCIONES PARA CAMBIAR: 'junit' (para xml) o 'cucumber' (para json)
testPaths: 'reports/test-results.xml' #OPCIONES: '/test-results.xml' o 'cucumber-report.json'
testExecKey: 'GX-29821' #EDITAR AQUÍ EL TEST EXECUTION A IMPORTAR LAS PRUEBAS.
testExecKey: 'GX-32429' #EDITAR AQUÍ EL TEST EXECUTION A IMPORTAR LAS PRUEBAS.
projectKey: 'GX' #EDITAR EN CASO DE TRABAJAR CON OTRO PROYECTO.

- name: 🔔Slack Notification of Done
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/CI-regressionQA.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ jobs:
with:
browser: chrome
command: | #NO EDITAR. Es para correr todas las pruebas del Repo.
yarn regression cypress/e2e/Tests/Elements/GX-29755-Elements-radioButtons.cy.js
yarn regression

- name: 📬Generate XML Regression Report
if: always()
Expand Down
43 changes: 43 additions & 0 deletions cypress/e2e/Tests/Elements/GX-29736_RadioButtons.cy.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import { removeLogs } from '@helper/RemoveLogs';

//test set:
describe('GX-29736 ToolsQA | Elements | Radio Buttons', () => {
//todo: precondiciones
beforeEach('Precondición', () => {
const endpoint = '/radio-button';
cy.visit(`/${endpoint}`);
});

// afterEach('', () => {

// })

it('29756 | TC1: Validar visualizar el label YES cuando se selecciona el radio button Yes', () => {
//tags
cy.get('#yesRadio').click({ force: true });
cy.contains('You have selected').children().should('have.text', 'Yes');
//cy.contains('You have selected').children().should.equal('yes');
//
});

it('29756 | TC2: Validar visualizar el label Impressive cuando se selecciona el radio button Impressive', () => {
//tags
cy.get('#impressiveRadio').click({ force: true });
cy.contains('You have selected').children().should('have.text', 'Impressive');
//cy.contains('You have selected').children().should.equal('yes');

//
});

it('29756 | TC3: Validar que el radio button con label "NO" este deshabilitado y no se pueda seleccionar', () => {
//tags
cy.get('#noRadio').should('be.disabled');
cy.contains('You have selected').should('not.exist');
//cy.contains('You have selected').children().should.equal('yes');

//
});
});

//ES module imports/exports
removeLogs();
27 changes: 27 additions & 0 deletions cypress/e2e/Tests/Elements/GX-30150-RadioButtons.cy.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import { removeLogs } from '@helper/RemoveLogs';
removeLogs();
import data from '@data/GX-30150-RadioButtons.json';
import { ButtonsSelected } from '@pages/Elements/GX-30150-RadioButtons.Page';

//* Test Set
describe('ToolsQA | Elements | Radio Buttons', () => {
beforeEach('Usuario se encuentra en el site web radio buttons', () => {
cy.visit(data.endPoint);
cy.url().should('contain', data.endPoint);
});
it('30151 | TC01: Validar que el RB “Yes” pueda ser seleccionado', () => {
ButtonsSelected.ClickOnYesButtons();
ButtonsSelected.get
.Response()
.should('be.visible')
.and('contain.text', data.Response + data.Buttons.Yes);
});
it('30151 | TC02: Validar que el RB “Impressive” pueda ser seleccionado', () => {
ButtonsSelected.ClickOnImpressiveButton();
cy.contains(data.Response).children().should('be.visible').and('contain.text', data.Buttons.Impressive);
});
it('30151 | TC03: Validar que el RB “No” no puede ser seleccionado', () => {
ButtonsSelected.get.NoButton().should('be.disabled');
ButtonsSelected.get.Response().should('not.exist');
});
});
31 changes: 31 additions & 0 deletions cypress/e2e/Tests/Elements/GX-30846-RadioButtons.cy.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import { removeLogs } from '@helper/RemoveLogs';
//* Test Set:
describe('GX30846: ToolsQA | Elements | Radio Buttons', () => {
//todo: Precondiciones
beforeEach('Precondición', () => {
const endpoint = '/radio-button';
cy.visit(`/${endpoint}`);
});

it('TC1: Validar visualizar el label YES cuando selecciona el radio button Yes', () => {
//* CSS Selectors in Cypress
cy.get('#yesRadio').click({ force: true }).should('be.checked');
cy.get('[class=text-success]').should('have.text', 'Yes');
cy.contains('You have selected ').children().should('have.text', 'Yes');
});

it('TC2: Validar visualizar el label Impressive cuando selecciona el radio button impresive', () => {
//* CSS Selectors in Cypress
cy.get('#impressiveRadio').click({ force: true }).should('be.checked');
cy.contains('You have selected ').children().should('have.text', 'Impressive');
});

it('TC3: Validar visualizar el label "NO" este deshabilitado y no se pueda seleccionar', () => {
//* CSS Selectors in Cypress
cy.get('#noRadio').should('be.disabled');
cy.get('you have selected').should('not.exist');
});
});

//ES Module import/exports
removeLogs();
19 changes: 19 additions & 0 deletions cypress/e2e/Tests/Elements/GX-31663-RadioButtons.cy.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import { removeLogs } from '@helper/RemoveLogs';
removeLogs();
describe('GX-31663|🪶ToolsQA | Elements | Radio Buttons', () => {
beforeEach('Visitar la pagina Tools QA', () => {
cy.visit('https://demoqa.com/radio-button');
});
it('31666 | TC1: Validar al seleccionar el radio button “Yes“, el siguiente mensaje : “You have selected Yes“.', () => {
cy.get('#yesRadio').click({ force : true });
cy.contains('You have selected ').children().should('have.text', 'Yes');
});
it('31666 | TC2: Validar al seleccionar el radio button “impressive“, el siguiente mensaje : “You have selected Impressive“.', () => {
cy.get('#impressiveRadio').click({ force : true });
cy.contains('You have selected ').children().should('have.text', 'Impressive');
});
it('31666 | TC3: Validar el radio button “NO“ esté deshabilitado y no se pueda seleccionar.', () => {
cy.get('#noRadio').should('be.disabled');
cy.contains('You have selected ').should('not.exist');
});
});
47 changes: 47 additions & 0 deletions cypress/e2e/Tests/Elements/GX-32081-textBoxLeonardo.cy.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
describe('GX-32081-✅-tools-qa-elements-text-box-fill-form-and-submit', () => {
beforeEach('Visitar la pagina DemoQA', () => {
cy.visit('/text-box');
});
//todo: Forma 1
it('32082 | TC1: Validar resultado después de completar formulario con datos validos', () => {
//todo: Completar formularios
textBoxPage.fillUserNameInput(data.valid.userName);
textBoxPage.fillEmailInput(data.valid.userEmail);
textBoxPage.fillCurrentAddressInput(data.valid.userCurrentAddress);
textBoxPage.fillPermanentAddressInput(data.valid.userPermanentAddress);
textBoxPage.clickOnSubmitButton();
//todo: Validaciones
textBoxPage.get.nameResult().should('contain', data.valid.userName);
textBoxPage.get.emailResult().should('contain', data.valid.userEmail);
textBoxPage.get.currentAddressResult().should('contain', data.valid.userCurrentAddress);
textBoxPage.get.permanentAddressResult().should('contain', data.valid.userPermanentAddress);
});
//todo: Forma 2
it('32082 | TC1: Validar resultado después de completar formulario con datos validos', () => {
textBoxPage.completeForm({
userName: data.valid.userName,
email: data.valid.userEmail,
currentAddress: data.valid.userCurrentAddress,
permanentAddress: data.valid.userPermanentAddress,
});
//todo: Validaciones
textBoxPage.get.nameResult().should('contain', data.valid.userName);
textBoxPage.get.emailResult().should('contain', data.valid.userEmail);
textBoxPage.get.currentAddressResult().should('contain', data.valid.userCurrentAddress);
textBoxPage.get.permanentAddressResult().should('contain', data.valid.userPermanentAddress);
});
it('32082 | TC2: Validar No genere resultado después de completar “Input email” con datos inválidos', () => {
data.invalid.forEach(invalidData => {
textBoxPage.fillEmailInput(invalidData.email);
textBoxPage.clickOnSubmitButton();
//todo: validaciones
textBoxPage.get.emailResult().should('not.exist');
textBoxPage.get.inputEmail().should('have.css', 'border', '1px solid rgb(255, 0, 0)');
textBoxPage.clearEmailInput();
});
});
});
import data from '../../../fixtures/data/GX-32081-textBoxLeonardo.json';
import { textBoxPage } from '@pages/Elements/GX-32081-textBoxLeonardo.Page';
import { removeLogs } from '@helper/RemoveLogs';
removeLogs();
18 changes: 18 additions & 0 deletions cypress/e2e/Tests/Elements/GX-32427-RadioButtons.cy.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { removeLogs } from '@helper/RemoveLogs';
removeLogs();

describe('GX-32427 tools-qa-elements-radio-buttons', () => {
beforeEach('Precondicion: Usuario debe estar en la pagina Radio-Button', () => {
cy.visit('https://demoqa.com/radio-button');
cy.url().should('contain', 'button');
});
it('32628 | TC1: Validar hacer click en boton Yes', () => {
cy.get("[for='yesRadio']").click();
});
it('32628 | TC2: Validar hacer click en boton Impressive ', () => {
cy.get("[for='impressiveRadio']").click();
});
it('32628 | TC3: Validar existencia en boton NO ', () => {
cy.contains('No').should('be.visible');
});
});
9 changes: 9 additions & 0 deletions cypress/fixtures/data/GX-30150-RadioButtons.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"endPoint": "/radio-button",
"Response": "You have selected ",
"Buttons": {
"Yes": "Yes",
"Impressive": "Impressive",
"No": "No"
}
}
19 changes: 19 additions & 0 deletions cypress/fixtures/data/GX-32081-textBoxLeonardo.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"valid": {
"userName": "Leonardo",
"userEmail": "[email protected]",
"userCurrentAddress": "Calle 1",
"userPermanentAddress": "Calle 2"
},
"invalid": [
{
"email": "leonardo@"
},
{
"email": "leonardo"
},
{
"email": "leonardo.com"
}
]
}
18 changes: 18 additions & 0 deletions cypress/support/pages/Elements/GX-30150-RadioButtons.Page.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import data from '@data/GX-30150-RadioButtons.json';

class Buttons {
get = {
YesButton: () => cy.get('[for="yesRadio"]'),
ImpressiveButton: () => cy.get('[for="impressiveRadio"]'),
NoButton: () => cy.get('#noRadio'),
Response: () => cy.get('[class="mt-3"]'),
};
ClickOnYesButtons() {
this.get.YesButton().should('contain', data.Buttons.Yes).click();
}
ClickOnImpressiveButton() {
this.get.ImpressiveButton().should('contain', data.Buttons.Impressive).click();
}
}

export const ButtonsSelected = new Buttons();
39 changes: 39 additions & 0 deletions cypress/support/pages/Elements/GX-32081-textBoxLeonardo.Page.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
class textboxPage {
get = {
inputUserName: () => cy.get('#userName'),
inputEmail: () => cy.get('#userEmail'),
inputCurrentAddress: () => cy.get('#currentAddress'),
inputPermanentAddress: () => cy.get('#permanentAddress'),
submitButton: () => cy.get('#submit'),
nameResult: () => cy.get('#name'),
emailResult: () => cy.get('#email'),
currentAddressResult: () => cy.get('p[id=currentAddress]'),
permanentAddressResult: () => cy.get('p[id=permanentAddress]'),
};
fillUserNameInput(val) {
this.get.inputUserName().type(val);
}
fillEmailInput(val) {
this.get.inputEmail().type(val);
}
fillCurrentAddressInput(val) {
this.get.inputCurrentAddress().type(val);
}
fillPermanentAddressInput(val) {
this.get.inputPermanentAddress().type(val);
}
clickOnSubmitButton() {
this.get.submitButton().click();
}
clearEmailInput() {
this.get.inputEmail().clear();
}
completeForm({ userName: val, email: val2, currentAddress: val3, permanentAddress: val4 }) {
this.get.inputUserName().type(val);
this.get.inputEmail().type(val2);
this.get.inputCurrentAddress().type(val3);
this.get.inputPermanentAddress().type(val4);
this.get.submitButton().click();
}
}
export const textBoxPage = new textboxPage();
35 changes: 35 additions & 0 deletions cypress/test-plan/in-sprint/sprint-24/GX-29736.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
ID: https://upexgalaxy24.atlassian.net/browse/GX-29736

# Summary: ToolsQA | Elements | RadioButtons

Como QA aprendiz, Quiero testear los Radio Buttons Para practicar hacer este tipo de Escenario de Testing

```
🧪Test Strategy

Utiilizar Scripts sencillos para tomar elementos con CSS Selectors

No utilizar un enfoque random

No tomar los textos de los elementos clickeados para utilizar luego.

Usar un enfoque sencillo con data esperada.
```

✅ACCEPTANCE CRITERIA (Esta Feature no necesita una US formato BDD; por favor revisar las BRS)

🚩BUSINESS RULES SPEC

Cada Radio Buttons (RB) debe tener la siguiente etiqueta respectiva, hay un total de 3:

Yes Impressive No

Output: Por cada vez que se seleccione un RB, debe visualizar el mensaje siguiente:

“You have selected ” + buttonName

(TechNote: tomar en cuenta la separación)

donde “buttonName” = RB seleccionado

Excepción: El único RB que no debe ser seleccionado es el “No” El cursor del mouse no puede seleccionarlo.
45 changes: 45 additions & 0 deletions cypress/test-plan/in-sprint/sprint-24/GX-30150.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# GX-30150 🪶ToolsQA | Elements | Radio Buttons

**Link Jira:** https://upexgalaxy24.atlassian.net/browse/GX-30150

**Sprint:** **_Galaxy🚀Sprint #24🪶_**

**Epic Link:** https://upexgalaxy24.atlassian.net/browse/GX-1

### _Description:_

#### Como QA aprendiz,

#### Quiero testear los Radio Buttons

#### Para practicar hacer este tipo de Escenario de Testing

## **✅ACCEPTANCE CRITERIA**

(Esta Feature no necesita una US formato BDD; por favor revisar las BRS)

## **🚩BUSINESS RULES SPEC**

- Cada Radio Buttons (RB) debe tener la siguiente etiqueta respectiva, hay un total de 3:
- Yes
- Impressive
- No
- Output:
- Por cada vez que se seleccione un RB, debe visualizar el mensaje siguiente:
- “You have selected ” + buttonName
- (TechNote: tomar en cuenta la separación)
- donde “buttonName” = RB seleccionado
- Excepción:
- El único RB que no debe ser seleccionado es el “No”
- El cursor del mouse no puede seleccionarlo.

## **🧬WORKFLOW**

### N/A

## **🧪Test Strategy**

- **Utilizar Scripts sencillos para tomar elementos con CSS Selectors**
- **No utilizar un enfoque random**
- **No tomar los textos de los elementos clickeados para utilizar luego.**
- **Usar un enfoque sencillo con data esperada.**
Loading