From a72a980e4bbb74d67d1ec3436098c4b6fd8ae3ca Mon Sep 17 00:00:00 2001 From: francovenica Date: Fri, 24 Nov 2023 09:41:21 -0300 Subject: [PATCH] Tests: add Safe - qr code + ENS name + name validation (#2820) * qr code + ENS name + name validation * fix QR code test * adding locators at the top * merging with dev only this file * error message testid * removing wrong id test * remove constant * empty commit for signing purposes --- cypress/e2e/pages/load_safe.pages.js | 33 ++++++++-- cypress/e2e/smoke/load_safe.cy.js | 62 ++++++++++++++++++ cypress/fixtures/goerli_safe_QR.png | Bin 11927 -> 0 bytes cypress/fixtures/invalid_image_QR_test.png | Bin 0 -> 824 bytes cypress/fixtures/sepolia_test_safe_QR.png | Bin 0 -> 4333 bytes cypress/support/constants.js | 9 +++ .../common/ScanQRModal/ScanQRButton.tsx | 2 +- .../load/steps/SetAddressStep/index.tsx | 8 ++- 8 files changed, 107 insertions(+), 7 deletions(-) delete mode 100644 cypress/fixtures/goerli_safe_QR.png create mode 100644 cypress/fixtures/invalid_image_QR_test.png create mode 100644 cypress/fixtures/sepolia_test_safe_QR.png diff --git a/cypress/e2e/pages/load_safe.pages.js b/cypress/e2e/pages/load_safe.pages.js index 488b343bc6..eaf2dc1dee 100644 --- a/cypress/e2e/pages/load_safe.pages.js +++ b/cypress/e2e/pages/load_safe.pages.js @@ -3,17 +3,26 @@ import * as constants from '../../support/constants' const addExistingAccountBtnStr = 'Add existing one' const contactStr = 'Name, address & network' const invalidAddressFormatErrorMsg = 'Invalid address format' +const invalidAddressNameLengthErrorMsg = 'Maximum 50 symbols' const safeDataForm = '[data-testid=load-safe-form]' const nameInput = 'input[name="name"]' const addressInput = 'input[name="address"]' -const sideBarIcon = '[data-testid=ChevronRightIcon]' -const sidebarCheckIcon = '[data-testid=CheckIcon]' +const sideBarIcon = '[data-testid="ChevronRightIcon"]' +const sidebarCheckIcon = '[data-testid="CheckIcon"]' +const addressStepNextBtn = '[data-testid="load-safe-next-btn"]' +const qrCodeBtn = '[data-testid="address-qr-scan"]' +const typeFile = '[type="file"]' const nextBtnStr = 'Next' const addBtnStr = 'Add' const settingsBtnStr = 'Settings' const ownersConfirmationsStr = 'Owners and confirmations' const transactionStr = 'Transactions' +const qrErrorMsg = 'The QR could not be read' + +export function verifyQRCodeErrorMsg() { + cy.contains(qrErrorMsg).should('be.visible') +} export function openLoadSafeForm() { cy.contains('a', addExistingAccountBtnStr).click() @@ -52,14 +61,24 @@ export function verifyIncorrectAddressErrorMessage() { cy.get(addressInput).parent().prev('label').contains(invalidAddressFormatErrorMsg) } +export function verifyNameLengthErrorMessage() { + cy.get(nameInput).parent().prev('label').contains(invalidAddressNameLengthErrorMsg) +} + +export function scanQRCode(image) { + cy.get(qrCodeBtn).click() + cy.contains('Upload an image').click() + cy.get(typeFile).attachFile(image) +} + export function inputAddress(address) { cy.get(addressInput).clear().type(address) } -export function verifyAddressInputValue() { +export function verifyAddressInputValue(safeAddress) { // The address field should be filled with the "bare" QR code's address - const [, address] = constants.SEPOLIA_TEST_SAFE_1.split(':') - cy.get('input[name="address"]').should('have.value', address) + const [, address] = safeAddress.split(':') + cy.get(addressInput).should('have.value', address) } export function clickOnNextBtn() { @@ -119,3 +138,7 @@ export function verifyTransactionSectionIsVisible() { export function verifyNumberOfTransactions(startNumber, endNumber) { cy.get(`span:contains("${startNumber} out of ${endNumber}")`).should('have.length', 1) } + +export function verifyNextButtonStatus(param) { + cy.get(addressStepNextBtn).should(param) +} diff --git a/cypress/e2e/smoke/load_safe.cy.js b/cypress/e2e/smoke/load_safe.cy.js index 1d9122eb47..3837a21616 100644 --- a/cypress/e2e/smoke/load_safe.cy.js +++ b/cypress/e2e/smoke/load_safe.cy.js @@ -26,6 +26,68 @@ describe('[SMOKE] Load Safe tests', () => { cy.wait(2000) }) + it('Verify a network can be selected in the Safe', () => { + safe.clickNetworkSelector(constants.networks.sepolia) + safe.selectPolygon() + cy.wait(2000) + safe.clickNetworkSelector(constants.networks.polygon) + safe.selectSepolia() + }) + + it('Verify only valid Safe name can be accepted', () => { + // alias the address input label + cy.get('input[name="address"]').parent().prev('label').as('addressLabel') + + createwallet.verifyDefaultWalletName(createwallet.defaltSepoliaPlaceholder) + safe.verifyIncorrectAddressErrorMessage() + safe.inputNameAndAddress(testSafeName, constants.SEPOLIA_TEST_SAFE_1) + + safe.verifyAddressInputValue(constants.SEPOLIA_TEST_SAFE_1) + safe.verifyNextButtonStatus('be.enabled') + safe.clickOnNextBtn() + }) + + it('Verify names cannot have more than 50 characters', () => { + safe.inputName(main.generateRandomString(51)) + safe.verifyNameLengthErrorMessage() + }) + + it('Verify ENS name is translated to a valid address', () => { + cy.visit(constants.loadNewSafeEthUrl) + safe.inputAddress(constants.ENS_TEST_ETH) + safe.verifyAddressInputValue(constants.ETH_ENS_SAFE_ADDRESS_1) + safe.verifyNextButtonStatus('be.enabled') + safe.clickOnNextBtn() + }) + + it('Verify a valid QR code is accepted', () => { + safe.scanQRCode(constants.VALID_QR_CODE_PATH) + safe.verifyAddressInputValue(constants.SEPOLIA_TEST_SAFE_6) + safe.verifyNextButtonStatus('be.enabled') + safe.clickOnNextBtn() + }) + + it('Verify a non QR code is not accepted', () => { + safe.scanQRCode(constants.INVALID_QR_CODE_PATH) + safe.verifyQRCodeErrorMsg() + }) + + it('Verify custom name in the first owner an be set', () => { + safe.inputNameAndAddress(testSafeName, constants.SEPOLIA_TEST_SAFE_1) + safe.clickOnNextBtn() + createwallet.typeOwnerName(testOwnerName, 0) + safe.clickOnNextBtn() + }) + + it('Verify Safe and owner names are displayed in the Review step', () => { + safe.inputNameAndAddress(testSafeName, constants.SEPOLIA_TEST_SAFE_1) + safe.clickOnNextBtn() + createwallet.typeOwnerName(testOwnerName, 0) + safe.clickOnNextBtn() + safe.verifyDataInReviewSection(testSafeName, testOwnerName) + safe.clickOnAddBtn() + }) + it('[SMOKE] Verify the custom Safe name is successfully loaded', () => { safe.inputNameAndAddress(testSafeName, constants.SEPOLIA_TEST_SAFE_2) safe.clickOnNextBtn() diff --git a/cypress/fixtures/goerli_safe_QR.png b/cypress/fixtures/goerli_safe_QR.png deleted file mode 100644 index 8db09e5771355334f5a9c432b9914eb4d2f39929..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11927 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 L^>bP0l+XkK!b1A*&EnmU%VP@GEOsF zg+wt_Rc*QzZ7pCjuU>^CPy4`}jBJF2Q*VZES{TagjEi%s4hIlmr}iJD64aQ3nB|${ z^U{XoBhS+t9@W#SeLKDvi+)OY&PZ*letY|!mOG_83(Is=|KIT)>-=I>nY`=CvsWiG z-u*DgqGzYv8qlh_T-r8M8)`EC=1uSO2T$bZ?=`IUHpt}-^B>m9-SrYand;b365W07 z$|GcWOJVrdhC7M0LYbP_M+4_)Csy#8?PIhdNV*fB2*iHrlv3QMIo~RXfod`$tKRK6;#pknl zVwC76kz<5N+6E+E6C_>IJ)y;QcIX~@66LkokHD$h&HNtWJx?s4@Chs>DK&uqN31?T z?)#x-1YT_BZ>Waw+&2Avc$ND6T_NGQa~w06XBCee5b*?7MDxdO?hkT3VxK#Q_T)tP z>mj@a$Q25J5%`9K3p#qC$S_0*8Q6=;B>_tvxZ|XP&^(TLZuBi9S57$a>sCK`utl6w zra~;pSHiS&5HZTq(RROf_Ea%1HD;vr z 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 Gl>2}50k8r9 literal 0 HcmV?d00001 diff --git a/cypress/support/constants.js b/cypress/support/constants.js index 70c65e95df..deb4dab3fe 100644 --- a/cypress/support/constants.js +++ b/cypress/support/constants.js @@ -11,6 +11,7 @@ export const SEPOLIA_TEST_SAFE_4 = 'sep:0x03042B890b99552b60A073F808100517fb148F export const SEPOLIA_TEST_SAFE_5 = 'sep:0xBd69b0a9DC90eB6F9bAc3E4a5875f437348b6415' export const SEPOLIA_TEST_SAFE_6 = 'sep:0x6d0b6F96f665Bb4490f9ddb2e450Da2f7e546dC1' export const SEPOLIA_TEST_SAFE_7 = 'sep:0xBf30F749FC027a5d79c4710D988F0D3C8e217A4F' +export const ETH_ENS_SAFE_ADDRESS_1 = 'eth:0x8675B754342754A30A2AeF474D114d8460bca19b' export const GNO_TEST_SAFE = 'gno:0xB8d760a90a5ed54D3c2b3EFC231277e99188642A' export const PAGINATION_TEST_SAFE = 'gor:0x850493a15914aAC05a821A3FAb973b4598889A7b' export const TEST_SAFE = 'gor:0x04f8b1EA3cBB315b87ced0E32deb5a43cC151a91' @@ -26,6 +27,9 @@ export const SIDEBAR_ADDRESS = '0x04f8...1a91' export const ENS_TEST_SEPOLIA = 'testenssepolia.eth' export const ENS_TEST_GOERLI = 'goerli-safe-test.eth' export const ENS_TEST_SEPOLIA_INVALID = 'ivladitestenssepolia.eth' +export const ENS_TEST_ETH = 'mainnetsafe.eth' +export const VALID_QR_CODE_PATH = '../fixtures/sepolia_test_safe_QR.png' //converts to SEPOLIA_TEST_SAFE_6 address +export const INVALID_QR_CODE_PATH = '../fixtures/invalid_image_QR_test.png' //A blank square export const BROWSER_PERMISSIONS_KEY = `${LS_NAMESPACE}SafeApps__browserPermissions` export const SAFE_PERMISSIONS_KEY = `${LS_NAMESPACE}SafeApps__safePermissions` @@ -50,6 +54,7 @@ export const welcomeUrl = '/welcome' export const chainMaticUrl = '/welcome?chain=matic' export const createNewSafeSepoliaUrl = '/new-safe/create?chain=sep' export const loadNewSafeSepoliaUrl = '/new-safe/load?chain=sep' +export const loadNewSafeEthUrl = '/new-safe/load?chain=eth' export const appsUrl = '/apps' export const requestPermissionsUrl = '/request-permissions' export const getPermissionsUrl = '/get-permissions' @@ -155,3 +160,7 @@ export const localStorageKeys = { export const connectWalletNames = { e2e: 'E2E Wallet', } + +export const longNames = { + safeName: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit', +} diff --git a/src/components/common/ScanQRModal/ScanQRButton.tsx b/src/components/common/ScanQRModal/ScanQRButton.tsx index e960ae5691..97101607c9 100644 --- a/src/components/common/ScanQRModal/ScanQRButton.tsx +++ b/src/components/common/ScanQRModal/ScanQRButton.tsx @@ -29,7 +29,7 @@ const ScanQRButton = ({ onScan }: Props): ReactElement => { return ( <> - + diff --git a/src/components/new-safe/load/steps/SetAddressStep/index.tsx b/src/components/new-safe/load/steps/SetAddressStep/index.tsx index 89bfb3b9b6..cb91c1aead 100644 --- a/src/components/new-safe/load/steps/SetAddressStep/index.tsx +++ b/src/components/new-safe/load/steps/SetAddressStep/index.tsx @@ -157,7 +157,13 @@ const SetAddressStep = ({ data, onSubmit, onBack }: StepRenderProps}> Back -