Skip to content

Commit

Permalink
Tests: Cypress tests refactoring (#3657)
Browse files Browse the repository at this point in the history
* tests: refactoring

* tests: update nonce value
  • Loading branch information
mike10ca authored May 5, 2024
1 parent a93145c commit ce42a97
Show file tree
Hide file tree
Showing 17 changed files with 378 additions and 367 deletions.
111 changes: 56 additions & 55 deletions cypress/e2e/regression/address_book.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,19 @@ describe('Address book tests', () => {
})

it('Verify owners name can be edited', () => {
main
.addToLocalStorage(constants.localStorageKeys.SAFE_v2__addressBook, ls.addressBookData.sepoliaAddress1)
cy.wrap(null)
.then(() =>
main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__addressBook, ls.addressBookData.sepoliaAddress1),
)
.then(() =>
main.isItemInLocalstorage(constants.localStorageKeys.SAFE_v2__addressBook, ls.addressBookData.sepoliaAddress1),
)
.then(() => {
main
.isItemInLocalstorage(constants.localStorageKeys.SAFE_v2__addressBook, ls.addressBookData.sepoliaAddress1)
.then(() => {
cy.reload()
addressBook.clickOnEditEntryBtn()
addressBook.typeInNameInput(EDITED_NAME)
addressBook.clickOnSaveEntryBtn()
addressBook.verifyNameWasChanged(NAME, EDITED_NAME)
})
cy.reload()
addressBook.clickOnEditEntryBtn()
addressBook.typeInNameInput(EDITED_NAME)
addressBook.clickOnSaveEntryBtn()
addressBook.verifyNameWasChanged(NAME, EDITED_NAME)
})
})

Expand All @@ -61,57 +62,57 @@ describe('Address book tests', () => {
})

it('Verify the address book file can be exported', () => {
main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__addressBook, ls.addressBookData.dataSet).then(() => {
main
.isItemInLocalstorage(constants.localStorageKeys.SAFE_v2__addressBook, ls.addressBookData.dataSet)
.then(() => {
cy.reload()
cy.contains(ls.addressBookData.dataSet[11155111]['0xf405BC611F4a4c89CCB3E4d083099f9C36D966f8'])

const date = format(new Date(), 'yyyy-MM-dd', { timeZone: 'UTC' })
const fileName = `safe-address-book-${date}.csv`

addressBook.clickOnExportFileBtn()
addressBook.verifyExportMessage(12)
addressBook.confirmExport()

const downloadsFolder = Cypress.config('downloadsFolder')
//File reading is failing in the CI. Can be tested locally
cy.readFile(path.join(downloadsFolder, fileName)).should('exist')
})
})
cy.wrap(null)
.then(() => main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__addressBook, ls.addressBookData.dataSet))
.then(() =>
main.isItemInLocalstorage(constants.localStorageKeys.SAFE_v2__addressBook, ls.addressBookData.dataSet),
)
.then(() => {
cy.reload()
cy.contains(ls.addressBookData.dataSet[11155111]['0xf405BC611F4a4c89CCB3E4d083099f9C36D966f8'])
const date = format(new Date(), 'yyyy-MM-dd', { timeZone: 'UTC' })
const fileName = `safe-address-book-${date}.csv`
addressBook.clickOnExportFileBtn()
addressBook.verifyExportMessage(12)
addressBook.confirmExport()
const downloadsFolder = Cypress.config('downloadsFolder')
//File reading is failing in the CI. Can be tested locally
cy.readFile(path.join(downloadsFolder, fileName)).should('exist')
})
})

it('Verify that importing a csv file does not alter addresses in the Address book not present in the file', () => {
main
.addToLocalStorage(constants.localStorageKeys.SAFE_v2__addressBook, ls.addressBookData.sepoliaAddress1)
cy.wrap(null)
.then(() =>
main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__addressBook, ls.addressBookData.sepoliaAddress1),
)
.then(() =>
main.isItemInLocalstorage(constants.localStorageKeys.SAFE_v2__addressBook, ls.addressBookData.sepoliaAddress1),
)
.then(() => {
main
.isItemInLocalstorage(constants.localStorageKeys.SAFE_v2__addressBook, ls.addressBookData.sepoliaAddress1)
.then(() => {
cy.wait(1000)
cy.reload()
addressBook.clickOnImportFileBtn()
addressBook.importCSVFile(addressBook.validCSVFile)
addressBook.clickOnImportBtn()
addressBook.verifyDataImported([constants.RECIPIENT_ADDRESS])
})
cy.wait(1000)
cy.reload()
addressBook.clickOnImportFileBtn()
addressBook.importCSVFile(addressBook.validCSVFile)
addressBook.clickOnImportBtn()
addressBook.verifyDataImported([constants.RECIPIENT_ADDRESS])
})
})

it('Verify Safe name changes after uploading a csv file', () => {
main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__addedSafes, ls.addedSafes.set4).then(() => {
main
.addToLocalStorage(constants.localStorageKeys.SAFE_v2__addressBook, ls.addressBookData.addedSafesImport)
.then(() => {
cy.wait(1000)
cy.reload()
addressBook.clickOnImportFileBtn()
addressBook.importCSVFile(addressBook.addedSafesCSVFile)
addressBook.clickOnImportBtn()
sidebar.openSidebar()
sidebar.verifyAddedSafesExist([importedSafe])
})
})
cy.wrap(null)
.then(() => main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__addedSafes, ls.addedSafes.set4))
.then(() =>
main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__addressBook, ls.addressBookData.addedSafesImport),
)
.then(() => {
cy.wait(1000)
cy.reload()
addressBook.clickOnImportFileBtn()
addressBook.importCSVFile(addressBook.addedSafesCSVFile)
addressBook.clickOnImportBtn()
sidebar.openSidebar()
sidebar.verifyAddedSafesExist([importedSafe])
})
})
})
44 changes: 25 additions & 19 deletions cypress/e2e/regression/load_safe_2.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,40 +33,44 @@ describe('Load Safe tests 2', () => {
})

it('Verify names in address book are filled by default from address book', () => {
main
.addToLocalStorage(constants.localStorageKeys.SAFE_v2__addressBook, ls.addressBookData.sameOwnerName)
cy.wrap(null)
.then(() =>
main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__addressBook, ls.addressBookData.sameOwnerName),
)
.then(() => {
cy.reload()
safe.inputAddress(staticSafes.SEP_STATIC_SAFE_15)
safe.inputAddress(staticSafes.SEP_STATIC_SAFE_13)
safe.clickOnNextBtn()
safe.verifyOwnerNames(ownerNames)
safe.verifyOnwerInputIsNotEmpty(0)
})
})

it('Verify Safe address checksum', () => {
safe.verifyAddressCheckSum(staticSafes.SEP_STATIC_SAFE_15)
safe.verifyAddressInputValue(staticSafes.SEP_STATIC_SAFE_15)
safe.inputAddress(staticSafes.SEP_STATIC_SAFE_15.split(':')[1].toLowerCase())
safe.verifyAddressInputValue(staticSafes.SEP_STATIC_SAFE_15)
safe.verifyAddressCheckSum(staticSafes.SEP_STATIC_SAFE_13)
safe.verifyAddressInputValue(staticSafes.SEP_STATIC_SAFE_13)
safe.inputAddress(staticSafes.SEP_STATIC_SAFE_13.split(':')[1].toLowerCase())
safe.verifyAddressInputValue(staticSafes.SEP_STATIC_SAFE_13)
})

it('Verify owner name cannot be longer than 50 characters', () => {
safe.inputAddress(staticSafes.SEP_STATIC_SAFE_15)
safe.inputAddress(staticSafes.SEP_STATIC_SAFE_13)
safe.clickOnNextBtn()
safe.inputOwnerName(0, main.generateRandomString(51))
owner.verifyErrorMsgInvalidAddress(constants.addressBookErrrMsg.exceedChars)
})

it('Verify names with primary ENS name are filled by default', () => {
safe.inputAddress(staticSafes.SEP_STATIC_SAFE_15)
safe.inputAddress(staticSafes.SEP_STATIC_SAFE_13)
safe.clickOnNextBtn()
safe.verifyOnwerNameENS(1, constants.ENS_TEST_SEPOLIA_VALID)
})

it('Verify correct owner names are displayed for certain networks', () => {
main
.addToLocalStorage(constants.localStorageKeys.SAFE_v2__addressBook, ls.addressBookData.sameOwnerName)
cy.wrap(null)
.then(() =>
main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__addressBook, ls.addressBookData.sameOwnerName),
)
.then(() => {
cy.reload()
safe.clickNetworkSelector(constants.networks.sepolia)
Expand All @@ -77,7 +81,7 @@ describe('Load Safe tests 2', () => {
safe.clickOnBackBtn()
safe.clickNetworkSelector(constants.networks.ethereum)
safe.selectSepolia()
safe.inputAddress(staticSafes.SEP_STATIC_SAFE_15)
safe.inputAddress(staticSafes.SEP_STATIC_SAFE_13)
safe.clickOnNextBtn()
safe.verifyOwnerNames(ownerSepolia)
})
Expand All @@ -89,17 +93,19 @@ describe('Load Safe tests 2', () => {
})

it('Verify a valid address can be entered', () => {
safe.inputAddress(staticSafes.SEP_STATIC_SAFE_15)
safe.inputAddress(staticSafes.SEP_STATIC_SAFE_13)
safe.verifyAddresFormatIsValid()
})

it('Verify that safes already added to the watchlist cannot be added again', () => {
main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__addedSafes, ls.addedSafes.set1).then(() => {
cy.reload()
safe.inputAddress(staticSafes.SEP_STATIC_SAFE_5)
owner.verifyErrorMsgInvalidAddress(constants.addressBookErrrMsg.safeAlreadyAdded)
safe.verifyNextButtonStatus(constants.enabledStates.disabled)
})
cy.wrap(null)
.then(() => main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__addedSafes, ls.addedSafes.set1))
.then(() => {
cy.reload()
safe.inputAddress(staticSafes.SEP_STATIC_SAFE_13)
owner.verifyErrorMsgInvalidAddress(constants.addressBookErrrMsg.safeAlreadyAdded)
safe.verifyNextButtonStatus(constants.enabledStates.disabled)
})
})

it('Verify that the wrong prefix is not allowed', () => {
Expand Down
2 changes: 1 addition & 1 deletion cypress/e2e/regression/remove_owner.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ describe('Remove Owners tests', () => {
})

beforeEach(() => {
cy.visit(constants.setupUrl + staticSafes.SEP_STATIC_SAFE_5)
cy.visit(constants.setupUrl + staticSafes.SEP_STATIC_SAFE_13)
main.waitForHistoryCallToComplete()
cy.clearLocalStorage()
main.acceptCookies()
Expand Down
2 changes: 1 addition & 1 deletion cypress/e2e/regression/replace_owner.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ describe('Replace Owners tests', () => {
})

it("Verify 'Replace' tx is created", () => {
cy.visit(constants.setupUrl + staticSafes.SEP_STATIC_SAFE_17)
cy.visit(constants.setupUrl + staticSafes.SEP_STATIC_SAFE_4)
owner.waitForConnectionStatus()
owner.openReplaceOwnerWindow()
cy.wait(1000)
Expand Down
2 changes: 1 addition & 1 deletion cypress/e2e/regression/sidebar.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ describe('Sidebar tests', () => {
})

it('Verify New transaction button enabled for beneficiaries who are non-owners', () => {
cy.visit(constants.homeUrl + staticSafes.SEP_STATIC_SAFE_10)
cy.visit(constants.homeUrl + staticSafes.SEP_STATIC_SAFE_11)
sideBar.verifyNewTxBtnStatus(constants.enabledStates.enabled)
})

Expand Down
2 changes: 1 addition & 1 deletion cypress/e2e/regression/sidebar_nonowner.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ describe('Sidebar non-owner tests', () => {
})

beforeEach(() => {
cy.visit(constants.homeUrl + staticSafes.SEP_STATIC_SAFE_13)
cy.visit(constants.homeUrl + staticSafes.SEP_STATIC_SAFE_11)
cy.wait(2000)
cy.clearLocalStorage()
main.acceptCookies()
Expand Down
44 changes: 23 additions & 21 deletions cypress/e2e/regression/spending_limits.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -99,31 +99,33 @@ describe('Spending limits tests', () => {
})

it('Verify that when multiple assets are available, they are displayed in token dropdown', () => {
main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__settings, ls.safeSettings.slimitSettings).then(() => {
main
.isItemInLocalstorage(constants.localStorageKeys.SAFE_v2__settings, ls.safeSettings.slimitSettings)
.then(() => {
cy.reload()
navigation.clickOnNewTxBtn()
tx.clickOnSendTokensBtn()
spendinglimit.clickOnTokenDropdown()
spendinglimit.verifyMandatoryTokensExist()
})
})
cy.wrap(null)
.then(() => main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__settings, ls.safeSettings.slimitSettings))
.then(() =>
main.isItemInLocalstorage(constants.localStorageKeys.SAFE_v2__settings, ls.safeSettings.slimitSettings),
)
.then(() => {
cy.reload()
navigation.clickOnNewTxBtn()
tx.clickOnSendTokensBtn()
spendinglimit.clickOnTokenDropdown()
spendinglimit.verifyMandatoryTokensExist()
})
})

it('Verify that beneficiary can be retried from address book', () => {
main
.addToLocalStorage(constants.localStorageKeys.SAFE_v2__addressBook, ls.addressBookData.sepoliaAddress2)
cy.wrap(null)
.then(() =>
main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__addressBook, ls.addressBookData.sepoliaAddress2),
)
.then(() =>
main.isItemInLocalstorage(constants.localStorageKeys.SAFE_v2__addressBook, ls.addressBookData.sepoliaAddress2),
)
.then(() => {
main
.isItemInLocalstorage(constants.localStorageKeys.SAFE_v2__addressBook, ls.addressBookData.sepoliaAddress2)
.then(() => {
cy.reload()
spendinglimit.clickOnNewSpendingLimitBtn()
spendinglimit.enterBeneficiaryAddress(constants.DEFAULT_OWNER_ADDRESS.substring(30))
spendinglimit.selectRecipient(constants.DEFAULT_OWNER_ADDRESS)
})
cy.reload()
spendinglimit.clickOnNewSpendingLimitBtn()
spendinglimit.enterBeneficiaryAddress(constants.DEFAULT_OWNER_ADDRESS.substring(30))
spendinglimit.selectRecipient(constants.DEFAULT_OWNER_ADDRESS)
})
})

Expand Down
2 changes: 1 addition & 1 deletion cypress/e2e/regression/tokens.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ describe('Tokens tests', () => {
})

it('Verify that when connected user is not owner, Send button is disabled', () => {
cy.visit(constants.BALANCE_URL + staticSafes.SEP_STATIC_SAFE_11)
cy.visit(constants.BALANCE_URL + staticSafes.SEP_STATIC_SAFE_3)
assets.selectTokenList(assets.tokenListOptions.allTokens)
assets.showSendBtn(0)
assets.VerifySendButtonIsDisabled()
Expand Down
21 changes: 11 additions & 10 deletions cypress/e2e/smoke/address_book.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,17 +33,18 @@ describe('[SMOKE] Address book tests', () => {
})

it('[SMOKE] Verify entry can be deleted', () => {
main
.addToLocalStorage(constants.localStorageKeys.SAFE_v2__addressBook, ls.addressBookData.sepoliaAddress1)
cy.wrap(null)
.then(() =>
main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__addressBook, ls.addressBookData.sepoliaAddress1),
)
.then(() =>
main.isItemInLocalstorage(constants.localStorageKeys.SAFE_v2__addressBook, ls.addressBookData.sepoliaAddress1),
)
.then(() => {
main
.isItemInLocalstorage(constants.localStorageKeys.SAFE_v2__addressBook, ls.addressBookData.sepoliaAddress1)
.then(() => {
cy.reload()
addressBook.clickDeleteEntryButton()
addressBook.clickDeleteEntryModalDeleteButton()
addressBook.verifyEditedNameNotExists(EDITED_NAME)
})
cy.reload()
addressBook.clickDeleteEntryButton()
addressBook.clickDeleteEntryModalDeleteButton()
addressBook.verifyEditedNameNotExists(EDITED_NAME)
})
})

Expand Down
18 changes: 10 additions & 8 deletions cypress/e2e/smoke/batch_tx.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,30 +37,32 @@ describe('[SMOKE] Batch transaction tests', () => {
})

it('[SMOKE] Verify the batch can be confirmed and related transactions exist in the form', () => {
main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__batch, ls.batchData.entry0).then(() => {
main.isItemInLocalstorage(constants.localStorageKeys.SAFE_v2__batch, ls.batchData.entry0).then(() => {
cy.wrap(null)
.then(() => main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__batch, ls.batchData.entry0))
.then(() => main.isItemInLocalstorage(constants.localStorageKeys.SAFE_v2__batch, ls.batchData.entry0))
.then(() => {
cy.reload()
batch.clickOnBatchCounter()
batch.clickOnConfirmBatchBtn()
batch.verifyBatchTransactionsCount(2)
batch.clickOnBatchCounter()
cy.contains(funds_first_tx).parents('ul').as('TransactionList')
cy.get('@TransactionList').find('li').eq(0).find('span').eq(0).contains(funds_first_tx)
cy.get('@TransactionList').find('li').eq(1).find('span').eq(0).contains(funds_first_tx)
cy.get('@TransactionList').find('li').eq(0).contains(funds_first_tx)
cy.get('@TransactionList').find('li').eq(1).contains(funds_first_tx)
})
})
})

it('[SMOKE] Verify a transaction can be removed from the batch', () => {
main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__batch, ls.batchData.entry0).then(() => {
main.isItemInLocalstorage(constants.localStorageKeys.SAFE_v2__batch, ls.batchData.entry0).then(() => {
cy.wrap(null)
.then(() => main.addToLocalStorage(constants.localStorageKeys.SAFE_v2__batch, ls.batchData.entry0))
.then(() => main.isItemInLocalstorage(constants.localStorageKeys.SAFE_v2__batch, ls.batchData.entry0))
.then(() => {
cy.reload()
batch.clickOnBatchCounter()
cy.contains(batch.batchedTransactionsStr).should('be.visible').parents('aside').find('ul > li').as('BatchList')
cy.get('@BatchList').find(batch.deleteTransactionbtn).eq(0).click()
cy.get('@BatchList').should('have.length', 1)
cy.get('@BatchList').contains(funds_second_tx).should('not.exist')
})
})
})
})
Loading

0 comments on commit ce42a97

Please sign in to comment.