Skip to content

Commit

Permalink
Tests: add collectibles tests (#3264)
Browse files Browse the repository at this point in the history
* tests: add collectibles tests

* tests: update data-testids
  • Loading branch information
mike10ca authored Feb 15, 2024
1 parent ffd511f commit fb2fdb1
Show file tree
Hide file tree
Showing 7 changed files with 68 additions and 7 deletions.
19 changes: 19 additions & 0 deletions cypress/e2e/pages/nfts.pages.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,16 @@ const inactiveNftIcon = '[data-testid="nft-icon-border"]'
const activeNftIcon = '[data-testid="nft-icon-primary"]'
const nftCheckBox = (index) => `[data-testid="nft-checkbox-${index}"] > input`
const activeSendNFTBtn = '[data-testid="nft-send-btn-false"]'
const disabledSendNFTBtn = '[data-testid="nft-send-btn-true"]'
const modalTitle = '[data-testid="modal-title"]'
const modalHeader = '[data-testid="modal-header"]'
const modalSelectedNFTs = '[data-testid="selected-nfts"]'
const nftItemList = '[data-testid="nft-item-list"]'
const nftItemNane = '[data-testid="nft-item-name"]'
const signBtn = '[data-testid="sign-btn"]'
const txDetailsSummary = '[data-testid="decoded-tx-summary"]'
const txAccordionDetails = '[data-testid="decoded-tx-details"]'
const accordionActionItem = '[data-testid="action-item"]'

const noneNFTSelected = '0 NFTs selected'
const sendNFTStr = 'Send NFTs'
Expand All @@ -30,6 +34,21 @@ const sendStr = 'Send'
const toStr = 'To'
const transferFromStr = 'safeTransferFrom'

export function verifySendNFTBtnDisabled() {
cy.get(disabledSendNFTBtn).should('be.visible')
}
export function verifyTxDetails(data) {
main.verifyValuesExist(txDetailsSummary, data)
}

export function verifyCountOfActions(count) {
main.verifyElementsCount(accordionActionItem, count)
}

export function verifyActionName(index, name) {
cy.get(accordionActionItem).eq(index).should('contain', name)
}

export function clickOnNftsTab() {
cy.get('p').contains('NFTs').click()
}
Expand Down
43 changes: 40 additions & 3 deletions cypress/e2e/regression/nfts.cy.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import * as constants from '../../support/constants'
import * as main from '../pages/main.page'
import * as nfts from '../pages/nfts.pages'
import * as navigation from '../pages/navigation.page'

const nftsName = 'CatFactory'
const nftsAddress = '0x373B...866c'
const nftsTokenID = 'CF'
const singleNFT = ['safeTransferFrom']
const multipleNFT = ['multiSend']
const multipleNFTAction = 'safeTransferFrom'

describe('NFTs tests', () => {
beforeEach(() => {
Expand All @@ -25,4 +26,40 @@ describe('NFTs tests', () => {
nfts.clikOnNextBtn()
nfts.verifyReviewModalData(2)
})

it('Verify that when 1 NFTs is selected, there is no Actions block in Review step', () => {
nfts.verifyInitialNFTData()
nfts.selectNFTs(1)
nfts.sendNFT()
nfts.typeRecipientAddress(constants.SEPOLIA_TEST_SAFE_4)
nfts.clikOnNextBtn()
nfts.verifyTxDetails(singleNFT)
nfts.verifyCountOfActions(0)
})

it('Verify that when 2 NFTs are selected, actions and tx details are correct in Review step', () => {
nfts.verifyInitialNFTData()
nfts.selectNFTs(2)
nfts.sendNFT()
nfts.typeRecipientAddress(constants.SEPOLIA_TEST_SAFE_4)
nfts.clikOnNextBtn()
nfts.verifyTxDetails(multipleNFT)
nfts.verifyCountOfActions(2)
nfts.verifyActionName(0, multipleNFTAction)
nfts.verifyActionName(1, multipleNFTAction)
})

it('Verify Send button is disabled for non-owner', () => {
cy.visit(constants.balanceNftsUrl + constants.SEPOLIA_TEST_SAFE_19_NONOWNER_NFT)
nfts.verifyInitialNFTData()
nfts.selectNFTs(1)
nfts.verifySendNFTBtnDisabled()
})

it('Verify Send button is disabled for disconnected wallet', () => {
navigation.clickOnWalletExpandMoreIcon()
navigation.clickOnDisconnectBtn()
nfts.selectNFTs(1)
nfts.verifySendNFTBtnDisabled()
})
})
File renamed without changes.
1 change: 1 addition & 0 deletions cypress/support/constants.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ export const SEPOLIA_TEST_SAFE_15_TOKEN = 'sep:0xfC0A7ac73Fde7547ac0792Cca1D8A50
export const SEPOLIA_TEST_SAFE_16_CREATE_TX = 'sep:0xc2F3645bfd395516d1a18CA6ad9298299d328C01'
export const SEPOLIA_TEST_SAFE_17_SIDEBAR_NONOWNER = 'sep:0x10B45a24640E2170B6AA63ea3A289D723a0C9cba'
export const SEPOLIA_TEST_SAFE_18_PENDING_TX = 'sep:0xFFfaC243A24EecE6553f0Da278322aCF1Fb6CeF1'
export const SEPOLIA_TEST_SAFE_19_NONOWNER_NFT = 'sep:0x3e259dea1E317743Cb49CA9358904E07420ff061'
export const SEPOLIA_CONTRACT_SHORT = '0x11AB...34aF'
export const SEPOLIA_RECIPIENT_ADDR_SHORT = '0x4DD4...7bde'
export const GNO_TEST_SAFE = 'gno:0xB8d760a90a5ed54D3c2b3EFC231277e99188642A'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ export const MultisendActionsHeader = ({
}

return (
<div className={classnames(css.actionsHeader, { [css.compactHeader]: compact })}>
<div data-testid="all-actions" className={classnames(css.actionsHeader, { [css.compactHeader]: compact })}>
{title}
<Stack direction="row" divider={<Divider className={css.divider} />}>
<Button data-testid="expande-all-btn" onClick={onClickAll(true)} variant="text">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ export const SingleTxDecoded = ({

return (
<Accordion variant={variant} expanded={expanded} onChange={onChange}>
<AccordionSummary expandIcon={<ExpandMoreIcon />} className={accordionCss.accordion}>
<AccordionSummary data-testid="action-item" expandIcon={<ExpandMoreIcon />} className={accordionCss.accordion}>
<div className={css.summary}>
<CodeIcon color="border" fontSize="small" />
<Typography>{actionTitle}</Typography>
Expand Down
8 changes: 6 additions & 2 deletions src/components/tx/DecodedTx/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -78,13 +78,17 @@ const DecodedTx = ({
)}

<Accordion elevation={0} onChange={onChangeExpand} sx={!tx ? { pointerEvents: 'none' } : undefined}>
<AccordionSummary expandIcon={<ExpandMoreIcon />} className={accordionCss.accordion}>
<AccordionSummary
data-testid="decoded-tx-summary"
expandIcon={<ExpandMoreIcon />}
className={accordionCss.accordion}
>
<span style={{ flex: 1 }}>Transaction details</span>

{decodedData ? decodedData.method : tx?.data.operation === OperationType.DelegateCall ? 'Delegate call' : ''}
</AccordionSummary>

<AccordionDetails>
<AccordionDetails data-testid="decoded-tx-details">
{decodedData ? (
<MethodDetails data={decodedData} addressInfoIndex={addressInfoIndex} />
) : decodedDataError ? (
Expand Down

0 comments on commit fb2fdb1

Please sign in to comment.