qe-fe-automation
Version:
FE test automation framework using cypress
88 lines (82 loc) • 2.53 kB
text/typescript
import { ICreateCompany } from '../interface/company';
import { IOrganization } from '../interface/organization';
import { HttpRequest, HttpStatusCodes, Accept } from '../utilities/api';
import { LegalData } from './data/legal';
const DEFAULT_STAGING_PRIME_AGENCY_COMPANY_ASSOCIATION_UUID =
'61579ca9-3d77-45bf-b05c-f4eefc202153';
/**
* Create company legal entity
* @param authToken
* @returns {IOrganization} Information
*/
export function createLegalEntity(authToken: string): Cypress.Chainable<IOrganization> {
const legalEntitiesData = LegalData.generateLegalEntitiesData();
return cy
.request({
method: HttpRequest.Post,
url: 'api/admin/billable_entities',
headers: {
Authorization: authToken,
Accept: Accept.ApplicationJson
},
retryOnStatusCodeFailure: true,
body: legalEntitiesData
})
.then(({ body, status }) => {
expect(status, 'Successfully created legal entity').to.equal(HttpStatusCodes.Ok);
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
* @param agencyCompanyAssociationUuid
* @returns {ICreateCompany} Information
*/
export function addOffice(
authToken: string,
billableEntityUuid: string,
defaultOffice = true,
agencyCompanyAssociationUuid = DEFAULT_STAGING_PRIME_AGENCY_COMPANY_ASSOCIATION_UUID
): Cypress.Chainable<ICreateCompany> {
const officeData = LegalData.generateOfficeData(
billableEntityUuid,
defaultOffice,
agencyCompanyAssociationUuid
);
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;
});
}