diff --git a/create_branch_and_copy_e2e.sh b/create_branch_and_copy_e2e.sh new file mode 100644 index 000000000..6c280ddd1 --- /dev/null +++ b/create_branch_and_copy_e2e.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +# Verificar si se pasaron los parámetros correctos +if [ "$#" -ne 3 ]; then + echo "Uso: $0 " + exit 1 +fi + +# Asignar parámetros a variables +ID_TAREA=$1 +MODULO=$2 +E2E_PATH=$3 + +# Nombre de la rama +BRANCH_NAME="${ID_TAREA}_${MODULO}_missing_e2e" + +# Paso 1: Crear la rama local a partir de dev +git checkout dev +git pull origin dev +git checkout -b "${BRANCH_NAME}" + +# Paso 2: Copiar archivos al directorio destino +SOURCE_DIR="../salix/e2e/paths/${E2E_PATH}" +DEST_DIR="../test-processing/tests" + +mkdir -p "${DEST_DIR}" +cp -r "${SOURCE_DIR}"/* "${DEST_DIR}" + +# Paso 3: Ejecutar el comando node +cd ../test-processing +PROCESS_SCRIPT="../test-processing/index.js" +node "${PROCESS_SCRIPT}" +cd ../salix-front + +# Paso 4: Copiar archivos procesados al destino Cypress +PROCESSED_DIR="../test-processing/processedTests" +CYPRESS_DEST="./test/cypress/integration/${MODULO}" +mkdir -p "${CYPRESS_DEST}" +cp -r "${PROCESSED_DIR}"/* "${CYPRESS_DEST}" + +# Confirmación final +echo "Flujo completado exitosamente. Revisa los resultados." diff --git a/create_branch_and_copy_e2e_echo.sh b/create_branch_and_copy_e2e_echo.sh new file mode 100644 index 000000000..d89ea56c6 --- /dev/null +++ b/create_branch_and_copy_e2e_echo.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +# Verificar si se pasaron los parámetros correctos +if [ "$#" -ne 3 ]; then + echo "Uso: $0 " + exit 1 +fi + +# Asignar parámetros a variables +ID_TAREA=$1 +MODULO=$2 +E2E_PATH=$3 + +# Nombre de la rama +BRANCH_NAME="${ID_TAREA}_${MODULO}_missing_e2e" + +# Paso 1: Crear la rama local a partir de dev +echo "git checkout dev" +echo "git pull origin dev" +echo "git checkout -b ${BRANCH_NAME}" + +# Paso 2: Copiar archivos al directorio destino +SOURCE_DIR="../salix/e2e/paths/${E2E_PATH}" +DEST_DIR="../test-processing/tests" + +echo "mkdir -p ${DEST_DIR}" +echo "cp -r ${SOURCE_DIR}/* ${DEST_DIR}" + +# Paso 3: Ejecutar el comando node +echo "cd ../test-processing" +PROCESS_SCRIPT="../test-processing/index.js" +echo "node ${PROCESS_SCRIPT}" +echo "cd ../salix-front" + +# Paso 4: Copiar archivos procesados al destino Cypress +PROCESSED_DIR="../test-processing/processedTests" +CYPRESS_DEST="./test/cypress/integration/${MODULO}" + +echo "mkdir -p ${CYPRESS_DEST}" +echo "cp -r ${PROCESSED_DIR}/* ${CYPRESS_DEST}" + +# Confirmación final +echo "Flujo completado (pendiente de ejecución real). Valida los comandos antes de proceder." diff --git a/import_e2e.zip b/import_e2e.zip new file mode 100644 index 000000000..9359ce9ae Binary files /dev/null and b/import_e2e.zip differ diff --git a/package.json b/package.json index 04b75a0b0..550a08abf 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "lint": "eslint --ext .js,.vue ./", "format": "prettier --write \"**/*.{js,vue,scss,html,md,json}\" --ignore-path .gitignore", "test:e2e": "cypress open", + "test:e2e:run": "cypress run", "test:e2e:ci": "npm run resetDatabase && cd ../salix-front && cypress run", "test": "echo \"See package.json => scripts for available tests.\" && exit 0", "test:unit": "vitest", @@ -64,4 +65,4 @@ "vite": "^5.1.4", "vitest": "^0.31.1" } -} \ No newline at end of file +} diff --git a/src/filters/index.js b/src/filters/index.js index a92d2eb07..cefe8b0ed 100644 --- a/src/filters/index.js +++ b/src/filters/index.js @@ -18,6 +18,7 @@ import parsePhone from './parsePhone'; import isDialogOpened from './isDialogOpened'; export { + isDialogOpened, getUpdatedValues, getDifferences, isDialogOpened, diff --git a/src/pages/Customer/Card/CustomerUnpaid.vue b/src/pages/Customer/Card/CustomerUnpaid.vue index 18b12c60c..e6820cba5 100644 --- a/src/pages/Customer/Card/CustomerUnpaid.vue +++ b/src/pages/Customer/Card/CustomerUnpaid.vue @@ -2,6 +2,7 @@ import { ref } from 'vue'; import { useI18n } from 'vue-i18n'; import { useRoute } from 'vue-router'; + import VnInputDate from 'components/common/VnInputDate.vue'; import FormModel from 'components/FormModel.vue'; import FetchData from 'components/FetchData.vue'; @@ -38,45 +39,43 @@ const filterClientFindOne = { } " /> - - - + diff --git a/test/cypress/integration/client/01_create_client.spec.js b/test/cypress/integration/client/01_create_client.spec.js new file mode 100644 index 000000000..36e39fcb5 --- /dev/null +++ b/test/cypress/integration/client/01_create_client.spec.js @@ -0,0 +1,22 @@ +describe.skip('Client create path', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/list', { + timeout: 5000, + }); + }); + it(`should search for the user Carol Danvers to confirm it isn't created yet`, async () => {}); + it('should now access to the create client view by clicking the create-client floating button', async () => {}); + it('should receive an error when clicking the create button having name and Business name fields empty', async () => {}); + it(`should create a new province`, async () => {}); + it(`should create a new city`, async () => {}); + it(`should create a new post code`, async () => {}); + it(`should attempt to create a new user with all it's data but wrong email`, async () => {}); + it(`should attempt to create a new user with all it's data but wrong business type`, async () => {}); + it(`should attempt to create a new user with all it's data but wrong postal code`, async () => {}); + it(`should check for autocompleted city, province and country`, async () => {}); + it(`should create a new user with all correct data`, async () => {}); + it('should click on the Clients button of the top bar menu', async () => {}); + it(`should search for the user Carol Danvers to confirm it exists`, async () => {}); +}); diff --git a/test/cypress/integration/client/02_edit_basic_data.spec.js b/test/cypress/integration/client/02_edit_basic_data.spec.js new file mode 100644 index 000000000..fa160bfe0 --- /dev/null +++ b/test/cypress/integration/client/02_edit_basic_data.spec.js @@ -0,0 +1,38 @@ +describe.skip('Client Edit basicData path', () => { + describe('as employee', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/basic-data', { + timeout: 5000, + }); + }); + it('should not be able to change the salesPerson', async () => {}); + it('should edit the client basic data but leave salesPerson untainted', async () => {}); + it('should confirm the name have been edited', async () => {}); + it('should confirm the contact name have been edited', async () => {}); + it('should confirm the business type have been edited', async () => {}); + it('should confirm the email have been edited', async () => {}); + it('should confirm the channel have been selected', async () => {}); + it('should confirm the previous client have been selected', async () => {}); + }); + describe('as salesAssistant', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/basic-data', { + timeout: 5000, + }); + }); + it('should navigate to a client basic data', async () => {}); + it('should be able to change the salesPerson', async () => {}); + it('should edit the client basic data including salesPerson', async () => {}); + it('should now confirm the name have been edited', async () => {}); + it('should now confirm the contact name have been edited', async () => {}); + it('should now confirm the email have been edited', async () => {}); + it('should now confirm the phone have been edited', async () => {}); + it('should now confirm the mobile have been edited', async () => {}); + it('should confirm the sales person have been selected', async () => {}); + it('should now confirm the channel have been selected', async () => {}); + }); +}); diff --git a/test/cypress/integration/client/03_edit_fiscal_data.spec.js b/test/cypress/integration/client/03_edit_fiscal_data.spec.js new file mode 100644 index 000000000..8bef4fdcd --- /dev/null +++ b/test/cypress/integration/client/03_edit_fiscal_data.spec.js @@ -0,0 +1,39 @@ +describe.skip('Client Edit fiscalData path', () => { + describe('as employee', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/fiscal-data', { + timeout: 5000, + }); + }); + it(`should click on the 1st edit icon to check EQtax isnt checked`, async () => {}); + it(`should go back to addresses then select the second one and confirm the EQtax isnt checked`, async () => {}); + it(`should click on the fiscal data button`, async () => {}); + it('should not be able to edit the verified data checkbox', async () => {}); + }); + describe('as administrative', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/fiscal-data', { + timeout: 5000, + }); + }); + it(`should edit the fiscal data but fail as the fiscal id ain't valid`, async () => {}); + it(`should edit the fiscal this time with a valid fiscal id`, async () => {}); + it('should propagate the Equalization tax', async () => {}); + it('should receive an error if the fiscal id contains A or B at the beginning', async () => {}); + it('should edit the fiscal data correctly as VIES isnt checked and fiscal id is valid for EQtax', async () => {}); + it(`should click on the addresses button to access to the client's addresses`, async () => {}); + it(`should click on the 1st edit icon to confirm EQtax is checked`, async () => {}); + it(`should go back to addresses then select the second one and confirm the EQtax is checked`, async () => {}); + it('should navigate back to fiscal data and uncheck EQtax then check VIES', async () => {}); + it('should propagate the Equalization tax changes', async () => {}); + it('should confirm its name have been edited', async () => {}); + it('should confirm the fiscal data have been edited', async () => {}); + it(`should click on the addresses button to access to the client's addresses`, async () => {}); + it(`should click on the 1st edit icon to access the address details and uncheck EQtax checkbox`, async () => {}); + it('should navigate back to fiscal data to confirm invoice by address is now checked', async () => {}); + }); +}); diff --git a/test/cypress/integration/client/04_edit_billing_data.spec.js b/test/cypress/integration/client/04_edit_billing_data.spec.js new file mode 100644 index 000000000..57883f5a1 --- /dev/null +++ b/test/cypress/integration/client/04_edit_billing_data.spec.js @@ -0,0 +1,15 @@ +describe.skip('Client ient Edit billing data path', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/billing-data', { + timeout: 5000, + }); + }); + it(`should attempt to edit the billing data without an IBAN but fail`, async () => {}); + it(`should edit the billing data and save the form`, async () => {}); + it(`should create a new BIC code`, async () => {}); + it(`should confirm the IBAN pay method was sucessfully saved`, async () => {}); + it(`should clear the BIC code field, update the IBAN to see how he BIC code autocompletes`, async () => {}); + it('should confirm the billing data have been edited', async () => {}); +}); diff --git a/test/cypress/integration/client/05_add_address.spec.js b/test/cypress/integration/client/05_add_address.spec.js new file mode 100644 index 000000000..a9f83db93 --- /dev/null +++ b/test/cypress/integration/client/05_add_address.spec.js @@ -0,0 +1,22 @@ +describe.skip('Client ient Add address path', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/adresses', { + timeout: 5000, + }); + }); + it(`should click on the add new address button to access to the new address form`, async () => {}); + it('should receive an error after clicking save button as consignee, street and town fields are empty', async () => {}); + it('should confirm that the city and province are propertly filled', async () => {}); + it(`should throw after clicking save button as consignee, incoterms and customsAgent are empty`, async () => {}); + it(`should receive an error after clicking save button as customsAgent is empty`, async () => {}); + it(`should create a new custom agent and then save the address`, async () => {}); + it(`should navigate back to the addresses index`, async () => {}); + it(`should confirm the new address exists and it's the default one`, async () => {}); + it('should click on the make default icon of the second address', async () => {}); + it(`should confirm the default address is the expected one`, async () => {}); + it(`should click on the edit icon of the default address`, async () => {}); + it(`should click on the active checkbox and receive an error to save it because it is the default address`, async () => {}); + it(`should go back to the addreses section by clicking the cancel button`, async () => {}); +}); diff --git a/test/cypress/integration/client/06_add_address_notes.spec.js b/test/cypress/integration/client/06_add_address_notes.spec.js new file mode 100644 index 000000000..d1d98e40e --- /dev/null +++ b/test/cypress/integration/client/06_add_address_notes.spec.js @@ -0,0 +1,13 @@ +describe.skip('Client ient add address notes path', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/credits', { + timeout: 5000, + }); + }); + it(`should click on the edit icon of the default address`, async () => {}); + it('should not save a description without observation type', async () => {}); + it('should not save an observation type without description', async () => {}); + it('should create two new observations', async () => {}); +}); diff --git a/test/cypress/integration/client/07_edit_web_access.spec.js b/test/cypress/integration/client/07_edit_web_access.spec.js new file mode 100644 index 000000000..ba2f945f5 --- /dev/null +++ b/test/cypress/integration/client/07_edit_web_access.spec.js @@ -0,0 +1,10 @@ +describe.skip('Client ient web access path', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/web-access', { + timeout: 5000, + }); + }); + it('should modify and save web access attributes', async () => {}); +}); diff --git a/test/cypress/integration/client/09_add_credit.spec.js b/test/cypress/integration/client/09_add_credit.spec.js new file mode 100644 index 000000000..39c4ca6d2 --- /dev/null +++ b/test/cypress/integration/client/09_add_credit.spec.js @@ -0,0 +1,12 @@ +describe.skip('Client ient Add credit path', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/credits', { + timeout: 5000, + }); + }); + it(`should click on the add credit button`, async () => {}); + it(`should edit the credit`, async () => {}); + it('should confirm the credit was updated', async () => {}); +}); diff --git a/test/cypress/integration/client/10_add_greuge.spec.js b/test/cypress/integration/client/10_add_greuge.spec.js new file mode 100644 index 000000000..da3cf8a7b --- /dev/null +++ b/test/cypress/integration/client/10_add_greuge.spec.js @@ -0,0 +1,12 @@ +describe.skip('Client ient Add greuge path', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/credits', { + timeout: 5000, + }); + }); + it(`should click on the add greuge button`, async () => {}); + it(`should receive an error if all fields are empty but date and type on submit`, async () => {}); + it(`should create a new greuge with all its data and confirm the greuge was added to the list`, async () => {}); +}); diff --git a/test/cypress/integration/client/11_mandate.spec.js b/test/cypress/integration/client/11_mandate.spec.js new file mode 100644 index 000000000..3231e8388 --- /dev/null +++ b/test/cypress/integration/client/11_mandate.spec.js @@ -0,0 +1,10 @@ +describe.skip('Client ient mandate path', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/credits', { + timeout: 5000, + }); + }); + it('should confirm the client has a mandate of the CORE type', async () => {}); +}); diff --git a/test/cypress/integration/client/12_lock_of_verified_data.spec.js b/test/cypress/integration/client/12_lock_of_verified_data.spec.js new file mode 100644 index 000000000..9f8bd3636 --- /dev/null +++ b/test/cypress/integration/client/12_lock_of_verified_data.spec.js @@ -0,0 +1,63 @@ +describe.skip('Client ient lock verified data path', () => { + describe('as salesPerson', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/credits', { + timeout: 5000, + }); + }); + it('should confirm verified data button is disabled for salesPerson', async () => {}); + it('should edit the social name', async () => {}); + it('should confirm the social name have been edited', async () => {}); + }); + describe('as administrative', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/credits', { + timeout: 5000, + }); + }); + it('should confirm verified data button is enabled for administrative', async () => {}); + it('should check the Verified data checkbox', async () => {}); + it('should confirm Verified data checkbox is checked', async () => {}); + it('should again edit the social name', async () => {}); + it('should again confirm the social name have been edited', async () => {}); + }); + describe('as salesPerson second run', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/credits', { + timeout: 5000, + }); + }); + it('should confirm verified data button is disabled once again for salesPerson', async () => {}); + it('should not be able to save change throwing a verified data error', async () => {}); + }); + describe('as salesAssistant', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/credits', { + timeout: 5000, + }); + }); + it('should log in as salesAssistant then get to the client fiscal data', async () => {}); + it('should confirm verified data button is enabled for salesAssistant', async () => {}); + it('should now edit the social name', async () => {}); + it('should now confirm the social name have been edited once and for all', async () => {}); + }); + describe('as salesPerson third run', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/credits', { + timeout: 5000, + }); + }); + it('should confirm verified data button is enabled once again', async () => {}); + it('should confirm the form is enabled for salesPerson', async () => {}); + }); +}); diff --git a/test/cypress/integration/client/13_log.spec.js b/test/cypress/integration/client/13_log.spec.js new file mode 100644 index 000000000..d1f616e14 --- /dev/null +++ b/test/cypress/integration/client/13_log.spec.js @@ -0,0 +1,11 @@ +describe.skip('Client ient log path', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/credits', { + timeout: 5000, + }); + }); + it('should update the clients name', async () => {}); + it('should navigate to the log section', async () => {}); +}); diff --git a/test/cypress/integration/client/14_balance.spec.js b/test/cypress/integration/client/14_balance.spec.js new file mode 100644 index 000000000..695cf355b --- /dev/null +++ b/test/cypress/integration/client/14_balance.spec.js @@ -0,0 +1,17 @@ +describe.skip('Client balance path', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/credits', { + timeout: 5000, + }); + }); + it('should now edit the local user config data', async () => {}); + it('should create a new payment that clears the debt', async () => {}); + it('should edit the 1st line reference and check data', async () => {}); + it('should create a new payment, check the cash comparison works correctly and balance value is -100', async () => {}); + it('should create a new payment and check the cash exceeded the maximum', async () => {}); + it('should create a new payment that sets the balance back to negative value and check it', async () => {}); + it('should now click on the Clients button of the top bar menu', async () => {}); + it('should now search for the user Petter Parker not check the payment button is not present', async () => {}); +}); diff --git a/test/cypress/integration/client/15_user_config.spec.js b/test/cypress/integration/client/15_user_config.spec.js new file mode 100644 index 000000000..2b4598d1d --- /dev/null +++ b/test/cypress/integration/client/15_user_config.spec.js @@ -0,0 +1,37 @@ +describe('User config', () => { + describe('as salesPerson', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/credits', { + timeout: 5000, + }); + }); + it('should login', async () => {}); + it('should now open the user config form to check the settings', async () => {}); + }); + describe('as employee', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/credits', { + timeout: 5000, + }); + }); + it('should log in', async () => {}); + it('should open the user config form to check the settings', async () => {}); + it('should now edit the user config data', async () => {}); + }); + describe('as salesPerson 2nd run', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/credits', { + timeout: 5000, + }); + }); + it('should log in once more', async () => {}); + it('should again open the user config form to check the local settings', async () => {}); + it('should now clear the local settings', async () => {}); + }); +}); diff --git a/test/cypress/integration/client/16_web_payment.spec.js b/test/cypress/integration/client/16_web_payment.spec.js new file mode 100644 index 000000000..5bd186299 --- /dev/null +++ b/test/cypress/integration/client/16_web_payment.spec.js @@ -0,0 +1,22 @@ +describe.skip('Client ient web Payment', () => { + describe('as employee', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/credits', { + timeout: 5000, + }); + }); + it('should not be able to confirm payments', async () => {}); + }); + describe('as administrative', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/credits', { + timeout: 5000, + }); + }); + it('should be able to confirm payments', async () => {}); + }); +}); diff --git a/test/cypress/integration/client/17_dms.spec.js b/test/cypress/integration/client/17_dms.spec.js new file mode 100644 index 000000000..8e5a25b2b --- /dev/null +++ b/test/cypress/integration/client/17_dms.spec.js @@ -0,0 +1,13 @@ +describe.skip('Client DMS', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/credits', { + timeout: 5000, + }); + }); + describe('as salesPerson', () => { + it('should delete de first file', async () => {}); + it(`should click on the first document line worker name making the descriptor visible`, async () => {}); + }); +}); diff --git a/test/cypress/integration/client/18_contacts.spec.js b/test/cypress/integration/client/18_contacts.spec.js new file mode 100644 index 000000000..bffbb0f50 --- /dev/null +++ b/test/cypress/integration/client/18_contacts.spec.js @@ -0,0 +1,11 @@ +describe.skip('Client ient contacts', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/credits', { + timeout: 5000, + }); + }); + it('should add a contact', async () => {}); + it('should delete de contact', async () => {}); +}); diff --git a/test/cypress/integration/client/19_summary.spec.js b/test/cypress/integration/client/19_summary.spec.js new file mode 100644 index 000000000..99b6f247e --- /dev/null +++ b/test/cypress/integration/client/19_summary.spec.js @@ -0,0 +1,19 @@ +describe.skip('Client ient summary path', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/credits', { + timeout: 5000, + }); + }); + it('should reach the first route summary section', async () => {}); + it('should display details from the client on the header', async () => {}); + it('should display some basic data', async () => {}); + it('should display fiscal address details', async () => {}); + it('should display some fiscal data', async () => {}); + it('should display pay method details', async () => {}); + it('should display default address details', async () => {}); + it('should display web access details', async () => {}); + it('should display business data', async () => {}); + it('should display financial information', async () => {}); +}); diff --git a/test/cypress/integration/client/20_credit_insurance.spec.js b/test/cypress/integration/client/20_credit_insurance.spec.js new file mode 100644 index 000000000..e3853f0de --- /dev/null +++ b/test/cypress/integration/client/20_credit_insurance.spec.js @@ -0,0 +1,22 @@ +describe.skip('Client credit insurance path', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/credits', { + timeout: 5000, + }); + }); + it('should open the create a new credit contract form', async () => {}); + it('should create a new credit contract', async () => {}); + it(`should verify the addNewContract button is not present since there's an active contract`, async () => {}); + it(`should click the view credits button`, async () => {}); + it('should click the add new credit button which opens the new credit form', async () => {}); + it('should fill the form but provide no grade to the new credit hence fail', async () => {}); + it('should provide a correct grade and succesfully save a new credit', async () => {}); + it('should be redirected to the credit index', async () => {}); + it('should check the amount of credits is the expected', async () => {}); + it('should navigate to the credit insurance section', async () => {}); + it('should bring the current contract to an end', async () => {}); + it(`should verify the addNewContract button is now present since there's no active contract`, async () => {}); + it(`should verify the endCurrentContract button is not present since there's no active contract`, async () => {}); +}); diff --git a/test/cypress/integration/client/21_defaulter.spec.js b/test/cypress/integration/client/21_defaulter.spec.js new file mode 100644 index 000000000..42cad2a92 --- /dev/null +++ b/test/cypress/integration/client/21_defaulter.spec.js @@ -0,0 +1,15 @@ +describe.skip('Client defaulter path', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/credits', { + timeout: 5000, + }); + }); + it('should count the amount of clients in the turns section', async () => {}); + it('should check contain expected client', async () => {}); + it('should first observation not changed', async () => {}); + it('should not add empty observation', async () => {}); + it('should checked all defaulters', async () => {}); + it('should add observation for all clients', async () => {}); +}); diff --git a/test/cypress/integration/client/22_unpaid.spec.js b/test/cypress/integration/client/22_unpaid.spec.js new file mode 100644 index 000000000..f5e09d6d9 --- /dev/null +++ b/test/cypress/integration/client/22_unpaid.spec.js @@ -0,0 +1,12 @@ +describe.skip('Client unpaid path', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/unpaid', { + timeout: 5000, + }); + }); + it('should set cliet unpaid', async () => {}); + it('should save unpaid', async () => {}); + it('should confirm the unpaid have been saved', async () => {}); +}); diff --git a/test/cypress/integration/client/23_send_compensation.spec.js b/test/cypress/integration/client/23_send_compensation.spec.js new file mode 100644 index 000000000..8d1cff1b3 --- /dev/null +++ b/test/cypress/integration/client/23_send_compensation.spec.js @@ -0,0 +1,10 @@ +describe.skip('Client Send balance compensation', () => { + beforeEach(() => { + cy.viewport(1280, 720); + cy.login('developer'); + cy.visit('#/customer/1110/credits', { + timeout: 5000, + }); + }); + it(`should click on send compensation button`, async () => {}); +}); diff --git a/test/cypress/integration/client/clientBasicData.spec.js b/test/cypress/integration/client/clientBasicData.spec.js index efaad33c2..bb014127e 100644 --- a/test/cypress/integration/client/clientBasicData.spec.js +++ b/test/cypress/integration/client/clientBasicData.spec.js @@ -5,6 +5,7 @@ describe('Client basic data', () => { cy.login('developer'); cy.visit('#/customer/1102/basic-data'); }); + it('Should load layout', () => { cy.get('.q-card').should('be.visible'); cy.dataCy('customerPhone').filter('input').should('be.visible');