/// /// import * as iRecOrgTestData from '../../fixtures/testIRecOrg.json'; import { generateNewOrg, generateNewUser } from '../../utils/generateMockData'; describe('I-REC organization registration', () => { const testUser = generateNewUser(); const testOrg = generateNewOrg(testUser); const { registrationYear, shareholders, website, mainBusiness, ceoName, ceoPassportNumber, balanceSheetTotal, primaryContactOrganizationName, primaryContactOrganizationAddress, primaryContactOrganizationPostalCode, subsidiaries, primaryContactName, primaryContactEmail, primaryContactPhoneNumber, primaryContactFax, leadUserFirstName, leadUserLastName, leadUserEmail, leadUserPhoneNumber, leadUserFax } = iRecOrgTestData; const accountTypeCy = 'irec-account-type'; const headquarterCountryCy = 'org-headquaters-country'; const registrationYearCy = 'year-registration'; const employeesNumberCy = 'number-of-employees'; const shareholdersCy = 'shareholders-names'; const websiteCy = 'org-website'; const activeCountriesCy = 'active-countries'; const mainBusinessCy = 'main-business'; const ceoNameCy = 'ceo-name'; const ceoPassportNumberCy = 'ceo-passport'; const balanceSheetTotalCy = 'last-balance'; const primaryContactOrganizationNameCy = 'primary-contact-org-name'; const primaryContactOrganizationAddressCy = 'primary-contact-org-address'; const primaryContactOrganizationPostalCodeCy = 'primary-contact-org-postal-code'; const primaryContactOrganizationCountryCy = 'primary-contact-org-country'; const subsidiariesCy = 'primary-contact-existing-irec'; const primaryContactNameCy = 'primary-contact-person-name'; const primaryContactEmailCy = 'primary-contact-person-email'; const primaryContactPhoneNumberCy = 'primary-contact-person-phone'; const primaryContactFaxCy = 'primary-contact-person-fax'; const leadUserTitleCy = 'lead-user-title'; const leadUserFirstNameCy = 'lead-user-first-name'; const leadUserLastNameCy = 'lead-user-last-name'; const leadUserEmailCy = 'lead-user-email'; const leadUserPhoneNumberCy = 'lead-user-phone'; const leadUserFaxCy = 'lead-user-fax'; before(() => { cy.apiRegisterUser(testUser); cy.apiRegisterOrg(testUser, testOrg); cy.visit('/'); cy.apiLoginUser(testUser); cy.dataCy('organizations-menu').click(); cy.dataCy('register-irec').click(); cy.url().should('include', 'register-irec'); }); it('should fill all form inputs', () => { cy.dataCy(registrationYearCy).type(registrationYear.toString()); cy.dataCy(shareholdersCy).type(shareholders); cy.dataCy(websiteCy).type(website); cy.dataCy(mainBusinessCy).type(mainBusiness); cy.dataCy(ceoNameCy).type(ceoName); cy.dataCy(ceoPassportNumberCy).type(ceoPassportNumber); cy.dataCy(balanceSheetTotalCy).type(balanceSheetTotal); cy.dataCy(primaryContactOrganizationNameCy).type(primaryContactOrganizationName); cy.dataCy(primaryContactOrganizationAddressCy).type(primaryContactOrganizationAddress); cy.dataCy(primaryContactOrganizationPostalCodeCy).type( primaryContactOrganizationPostalCode ); cy.dataCy(subsidiariesCy).type(subsidiaries); cy.dataCy(primaryContactNameCy).type(primaryContactName); cy.dataCy(primaryContactEmailCy).type(primaryContactEmail); cy.dataCy(primaryContactPhoneNumberCy).type(primaryContactPhoneNumber); cy.dataCy(primaryContactFaxCy).type(primaryContactFax); cy.dataCy(leadUserFirstNameCy).type(leadUserFirstName); cy.dataCy(leadUserLastNameCy).type(leadUserLastName); cy.dataCy(leadUserEmailCy).type(leadUserEmail); cy.dataCy(leadUserPhoneNumberCy).type(leadUserPhoneNumber); cy.dataCy(leadUserFaxCy).type(leadUserFax); cy.dataCy('register-irec-button').should('be.disabled'); }); it('should select options for all selectors in the form', () => { cy.dataCy(accountTypeCy).click(); cy.contains('Registrant and Participant').click(); cy.dataCy(headquarterCountryCy).click(); cy.contains('Austria').click(); cy.dataCy(employeesNumberCy).click(); cy.contains('50-100').click(); cy.dataCy(activeCountriesCy).click(); cy.contains('Algeria').click(); cy.dataCy(activeCountriesCy).click(); cy.contains('Andorra').click(); cy.dataCy(primaryContactOrganizationCountryCy).click(); cy.contains('Austria').click(); cy.dataCy('register-irec-button').should('be.disabled'); cy.dataCy(leadUserTitleCy).click(); cy.contains('Mr').click(); }); it('should register organization and show notification and modals', () => { cy.dataCy('register-irec-button').should('not.be.disabled'); cy.dataCy('register-irec-button').click(); cy.contains('Thank you for registering an I-REC account!'); cy.contains('button', 'Ok').click(); cy.notification('Organization registered'); cy.wait(500); }); it('should redirect to default page after clicking Ok', () => { cy.contains('button', 'Ok').click(); cy.url().should('include', 'devices/production'); }); it('should display appropriate I-REC data in My Organization view', () => { cy.dataCy('organizations-menu').click(); cy.dataCy('my-organization').click(); cy.contains('div', 'I-REC Information'); cy.inputHasValue(accountTypeCy, 'Both Registrant and Participant Account'); cy.inputHasValue(headquarterCountryCy, 'Austria'); cy.inputHasValue(registrationYearCy, registrationYear.toString()); cy.inputHasValue(employeesNumberCy, '50-100'); cy.inputHasValue(shareholdersCy, shareholders); cy.inputHasValue(websiteCy, website); cy.inputHasValue(activeCountriesCy, 'Algeria, Andorra'); cy.inputHasValue(mainBusinessCy, mainBusiness); cy.inputHasValue(ceoNameCy, ceoName); cy.inputHasValue(ceoPassportNumberCy, ceoPassportNumber); cy.inputHasValue(balanceSheetTotalCy, balanceSheetTotal); cy.inputHasValue(primaryContactOrganizationNameCy, primaryContactOrganizationName); cy.inputHasValue(primaryContactOrganizationAddressCy, primaryContactOrganizationAddress); cy.inputHasValue( primaryContactOrganizationPostalCodeCy, primaryContactOrganizationPostalCode ); cy.inputHasValue(primaryContactOrganizationCountryCy, 'Austria'); cy.inputHasValue(subsidiariesCy, subsidiaries); cy.inputHasValue(primaryContactNameCy, primaryContactName); cy.inputHasValue(primaryContactEmailCy, primaryContactEmail); cy.inputHasValue(primaryContactPhoneNumberCy, primaryContactPhoneNumber); cy.inputHasValue(primaryContactFaxCy, primaryContactFax); cy.inputHasValue(leadUserTitleCy, 'Mr'); cy.inputHasValue(leadUserFirstNameCy, leadUserFirstName); cy.inputHasValue(leadUserLastNameCy, leadUserLastName); cy.inputHasValue(leadUserEmailCy, leadUserEmail); cy.inputHasValue(leadUserPhoneNumberCy, leadUserPhoneNumber); cy.inputHasValue(leadUserFaxCy, leadUserFax); }); });