UNPKG

qe-fe-automation

Version:
97 lines (92 loc) 2.88 kB
import { ICreateCompany } from '../interface/company'; import { IOrganization } from '../interface/organization'; import { HttpRequest, HttpStatusCodes, Accept } from '../utilities/api'; import { LegalData } from './data/legal'; import { updateUserConfigurations } from './user'; /** * Create company legal entity * @param authToken * @returns {IOrganization} Information */ export function createLegalEntityEU( authToken: string, legalEntitiesData: any ): Cypress.Chainable<IOrganization> { return cy .request({ method: HttpRequest.Post, url: 'api/admin/billable_entities', headers: { Authorization: authToken, Accept: Accept.ApplicationJson }, retryOnStatusCodeFailure: true, body: legalEntitiesData }) .then(({ body, status }) => { const billUuId = body.uuid; expect(status, 'Successfully created legal entity').to.equal(HttpStatusCodes.Ok); const officeResponse = addOfficeEU(authToken, billUuId, true); officeResponse.then((response) => { const officeUuid = response.uuid; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore cy.getCurrentUserInfo(); cy.task<string>('getDataFromCache', 'userInfo').then((userInfo: any) => { const userUuid = userInfo.sub; const userConfigs = { companyOfficeUuid: officeUuid }; updateUserConfigurations(authToken, userUuid, userConfigs); }); }); return cy .request({ method: HttpRequest.Patch, url: 'api/admin/company', headers: { Authorization: authToken, Accept: Accept.ApplicationJson }, retryOnStatusCodeFailure: true, body: { defaultBillableEntityUuid: null } }) .then(({ status }) => { expect(status, 'Successfully updated default billable entity').to.equal( HttpStatusCodes.Ok ); return body; }); }); } /** * Add office to given legal entity * @param authToken * @param billableEntityUuid * @param defaultOffice * @returns {ICreateCompany} Information */ export function addOfficeEU( authToken: string, billableEntityUuid: string, defaultOffice = true ): Cypress.Chainable<ICreateCompany> { const officeData = LegalData.generateEUOfficeData(billableEntityUuid, defaultOffice); return cy .request({ method: HttpRequest.Post, url: 'api/admin/company/offices', headers: { Authorization: authToken, Accept: Accept.ApplicationJson }, retryOnStatusCodeFailure: true, body: officeData }) .then(({ body, status }) => { expect(status, 'Successfully added office to given legal entity').to.equal( HttpStatusCodes.Ok ); return body; }); }