qe-fe-automation
Version:
FE test automation framework using cypress
55 lines (50 loc) • 1.92 kB
text/typescript
import { AUTH_TOKEN } from 'cypress/support/commands';
import { bahnCard50Business, italo, sncf, trenItalia, ukRailNetworkCard } from './index';
const newUserCreds = Cypress.env('newUser').NEW_USER_PASSWORD;
function loginAndRetrieveData(): Cypress.Chainable<string> {
cy.clearLocalStorage();
cy.clearCookies();
return cy.task<string>('getDataFromCache', 'userEmail').then((email: string) => {
return cy.loginWithAuthToken({ email: email, password: newUserCreds, isSA: true });
});
}
Cypress.Commands.add('createTrainCard', (cardData: any) => {
return cy.request({
method: 'POST',
url: `api/trip/train/v1/trainCards`,
headers: {
Authorization: AUTH_TOKEN,
Accept: 'application/json'
},
body: cardData,
retryOnStatusCodeFailure: true
});
});
Cypress.Commands.add('getUserLoyaltyProgramMemberships', () => {
loginAndRetrieveData().then(() => {
cy.task('getDataFromCache', 'userResponse').then(({ uuid, email }: any) => {
cy.log('user: ' + email);
cy.log('uuid: ' + uuid);
cy.createTrainCard({ trainCardTypeId: ukRailNetworkCard })
.then((response) => {
cy.log('Train Card UkRail NetworkCard Response Status: ' + response.status);
return cy.createTrainCard(bahnCard50Business);
})
.then((response) => {
cy.log(`Train Card Deutsche bahn Response Status: ` + response.status);
return cy.createTrainCard(trenItalia);
})
.then((response) => {
cy.log('Train Card TrenItalia Response Status: ' + response.status);
return cy.createTrainCard(italo);
})
.then((response) => {
cy.log('Train Card Italo Response Status: ' + response.status);
return cy.createTrainCard(sncf);
})
.then((response) => {
cy.log('Train Card SNCF Response Status: ' + response.status);
});
});
});
});