WIP: #6943 improve_sections_and_e2e #998

Draft
jsegarra wants to merge 10 commits from 6943_improve_sections_and_e2e into dev
22 changed files with 429 additions and 175 deletions
Showing only changes of commit c5e8b640b4 - Show all commits

View File

@ -1,14 +1,22 @@
describe('Client create path', () => {
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',
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() => {
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 () => {});
});

View File

@ -1,21 +1,38 @@
describe('Client Edit basicData path', () => {
describe.skip('Client Edit basicData path', () => {
describe('as employee', () => {
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() => {
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', () => {
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() => {
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 () => {});
});
});

View File

@ -1,22 +1,39 @@
describe('Client Edit fiscalData path', () => {
describe.skip('Client Edit fiscalData path', () => {
describe('as employee', () => {
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() => {
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', () => {
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() => {
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 () => {});
});
});

View File

@ -1,7 +1,15 @@
describe('Client Edit billing data path', () => {
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() => {
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 () => {});
});

View File

@ -1,14 +1,22 @@
describe('Client Add address path', () => {
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() => {
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 () => {});
});

View File

@ -1,5 +1,13 @@
describe('Client add address notes path', () => {
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() => {
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 () => {});
});

View File

@ -1,2 +1,10 @@
describe('Client web access path', () => {
it('should modify and save web access attributes', async() => {
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 () => {});
});

View File

@ -1,4 +1,12 @@
describe('Client Add credit path', () => {
it(`should click on the add credit button`, async() => {
it(`should edit the credit`, async() => {
it('should confirm the credit was updated', async() => {
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 () => {});
});

View File

@ -1,4 +1,12 @@
describe('Client Add greuge path', () => {
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() => {
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 () => {});
});

View File

@ -1,2 +1,10 @@
describe('Client mandate path', () => {
it('should confirm the client has a mandate of the CORE type', async() => {
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 () => {});
});

View File

@ -1,22 +1,63 @@
describe('Client lock verified data path', () => {
describe.skip('Client ient lock verified data path', () => {
describe('as salesPerson', () => {
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() => {
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', () => {
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() => {
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', () => {
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() => {
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', () => {
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() => {
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', () => {
it('should confirm verified data button is enabled once again', async() => {
it('should confirm the form is enabled for salesPerson', async() => {
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 () => {});
});
});

View File

@ -1,3 +1,11 @@
describe('Client log path', () => {
it('should update the clients name', async() => {
it('should navigate to the log section', async() => {
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 () => {});
});

View File

@ -1,9 +1,17 @@
describe('Client balance path', () => {
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() => {
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 () => {});
});

View File

@ -1,12 +1,37 @@
describe('User config', () => {
describe('as salesPerson', () => {
it('should login', async() => {
it('should now open the user config form to check the settings', async() => {
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', () => {
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() => {
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', () => {
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() => {
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 () => {});
});
});

View File

@ -1,5 +1,22 @@
describe('Client web Payment', () => {
describe.skip('Client ient web Payment', () => {
describe('as employee', () => {
it('should not be able to confirm payments', async() => {
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', () => {
it('should be able to confirm payments', async() => {
beforeEach(() => {
cy.viewport(1280, 720);
cy.login('developer');
cy.visit('#/customer/1110/credits', {
timeout: 5000,
});
});
it('should be able to confirm payments', async () => {});
});
});

View File

@ -1,4 +1,13 @@
describe('Client DMS', () => {
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() => {
it('should delete de first file', async () => {});
it(`should click on the first document line worker name making the descriptor visible`, async () => {});
});
});

View File

@ -1,3 +1,11 @@
describe('Client contacts', () => {
it('should add a contact', async() => {
it('should delete de contact', async() => {
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 () => {});
});

View File

@ -1,11 +1,19 @@
describe('Client summary path', () => {
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() => {
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 () => {});
});

View File

@ -1,14 +1,22 @@
describe('Client credit insurance path', () => {
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() => {
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 () => {});
});

View File

@ -1,7 +1,15 @@
describe('Client defaulter path', () => {
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() => {
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 () => {});
});

View File

@ -1,4 +1,12 @@
describe('Client unpaid path', () => {
it('should set cliet unpaid', async() => {
it('should save unpaid', async() => {
it('should confirm the unpaid have been saved', async() => {
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 () => {});
});

View File

@ -1,2 +1,10 @@
describe('Client Send balance compensation', () => {
it(`should click on send compensation button`, async() => {
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 () => {});
});