158 lines
4.1 KiB
TypeScript
158 lines
4.1 KiB
TypeScript
const username = Cypress.env('username')
|
|
const password = Cypress.env('password')
|
|
const hostUrl = Cypress.env('hosturl')
|
|
const appLocation = Cypress.env('appLocation')
|
|
const longerCommandTimeout = Cypress.env('longerCommandTimeout')
|
|
const serverType = Cypress.env('serverType')
|
|
const libraryToOpenIncludes = Cypress.env(`libraryToOpenIncludes_${serverType}`)
|
|
const fixturePath = 'excels/'
|
|
|
|
context('liveness tests: ', function () {
|
|
this.beforeAll(() => {
|
|
if (serverType !== 'SASJS') {
|
|
cy.visit(`${hostUrl}/SASLogon/logout`)
|
|
}
|
|
cy.loginAndUpdateValidKey(true)
|
|
})
|
|
|
|
this.beforeEach(() => {
|
|
cy.visit(hostUrl + appLocation)
|
|
|
|
// cy.get('input.username').type(username)
|
|
// cy.get('input.password').type(password)
|
|
// cy.get('.login-group button').click()
|
|
|
|
visitPage('home')
|
|
})
|
|
|
|
it('1 | Login and submit test', (done) => {
|
|
cy.get('.nav-tree clr-tree > clr-tree-node', {
|
|
timeout: longerCommandTimeout
|
|
}).then((treeNodes: any) => {
|
|
libraryExistsInTree('viya', treeNodes)
|
|
? openTableFromTree(libraryToOpenIncludes, 'mpe_x_test')
|
|
: openTableFromTree('dc', 'mpe_x_test')
|
|
|
|
attachExcelFile('regular_excel.xlsx', () => {
|
|
submitExcel()
|
|
rejectExcel(done)
|
|
})
|
|
})
|
|
})
|
|
|
|
/**
|
|
* Thist part will be needed if we add more tests in future
|
|
*/
|
|
// this.afterEach(() => {
|
|
// cy.visit('https://sas.4gl.io/SASLogon/logout');
|
|
// })
|
|
})
|
|
|
|
const visitPage = (url: string) => {
|
|
cy.visit(`${hostUrl}${appLocation}/#/${url}`)
|
|
}
|
|
|
|
const libraryExistsInTree = (libName: string, nodes: any) => {
|
|
for (let node of nodes) {
|
|
if (node.innerText.toLowerCase().includes(libName.toLowerCase()))
|
|
return true
|
|
}
|
|
|
|
return false
|
|
}
|
|
|
|
const openTableFromTree = (
|
|
libNameIncludes: string,
|
|
tablename: string,
|
|
finish: any
|
|
) => {
|
|
cy.get('.app-loading', { timeout: longerCommandTimeout })
|
|
.should('not.exist')
|
|
.then(() => {
|
|
cy.get('.nav-tree clr-tree > clr-tree-node', {
|
|
timeout: longerCommandTimeout
|
|
}).then((treeNodes: any) => {
|
|
let viyaLib
|
|
|
|
for (let node of treeNodes) {
|
|
if (node.innerText.toLowerCase().includes(libNameIncludes)) {
|
|
viyaLib = node
|
|
break
|
|
}
|
|
}
|
|
|
|
if (!viyaLib && finish) finish(false)
|
|
|
|
cy.get(viyaLib).within(() => {
|
|
cy.get('.clr-tree-node-content-container > button').click()
|
|
|
|
cy.get('.clr-treenode-link').then((innerNodes: any) => {
|
|
for (let innerNode of innerNodes) {
|
|
if (innerNode.innerText.toLowerCase().includes(tablename)) {
|
|
innerNode.click()
|
|
if (finish) finish(true)
|
|
break
|
|
}
|
|
}
|
|
})
|
|
})
|
|
})
|
|
})
|
|
}
|
|
|
|
const attachExcelFile = (excelFilename: string, callback?: any) => {
|
|
cy.get('.buttonBar button:last-child')
|
|
.should('exist')
|
|
.click()
|
|
.then(() => {
|
|
cy.get('input[type="file"]#file-upload').attachFile(
|
|
`/${fixturePath}/${excelFilename}`
|
|
)
|
|
cy.get('.modal-footer .btn.btn-primary').then((modalBtn) => {
|
|
modalBtn.click()
|
|
if (callback) callback()
|
|
})
|
|
})
|
|
}
|
|
|
|
const submitExcel = (callback?: any) => {
|
|
cy.get('.buttonBar button.preview-submit', { timeout: longerCommandTimeout })
|
|
.click()
|
|
.then(() => {
|
|
if (callback) callback()
|
|
})
|
|
}
|
|
|
|
const rejectExcel = (callback?: any) => {
|
|
cy.get('button', { timeout: longerCommandTimeout })
|
|
.should('contain', 'Go to approvals screen')
|
|
.then((allButtons: any) => {
|
|
for (let approvalButton of allButtons) {
|
|
if (
|
|
approvalButton.innerText
|
|
.toLowerCase()
|
|
.includes('go to approvals screen')
|
|
) {
|
|
approvalButton.click()
|
|
break
|
|
}
|
|
}
|
|
|
|
cy.get('button.btn-danger')
|
|
.should('exist')
|
|
.should('not.be.disabled')
|
|
.click()
|
|
.then(() => {
|
|
cy.get('.modal-footer button.btn-success-outline')
|
|
.click()
|
|
.then(() => {
|
|
cy.get('app-history')
|
|
.should('exist')
|
|
.then(() => {
|
|
if (callback) callback()
|
|
})
|
|
})
|
|
})
|
|
})
|
|
}
|