-
Notifications
You must be signed in to change notification settings - Fork 5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Prevent user from editing a contract interaction created by a dapp (#…
…16498) * Prevent user from editing a contract interaction created by a dapp * Code cleanup * Fix e2e test selector * Fix e2e test * Fix e2e test * Update snapshot
- Loading branch information
Showing
5 changed files
with
123 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,107 @@ | ||
const { strict: assert } = require('assert'); | ||
const { convertToHexValue, withFixtures } = require('../helpers'); | ||
const { SMART_CONTRACTS } = require('../seeder/smart-contracts'); | ||
const FixtureBuilder = require('../fixture-builder'); | ||
|
||
describe('Editing confirmations of dapp initiated contract interactions', function () { | ||
const ganacheOptions = { | ||
accounts: [ | ||
{ | ||
secretKey: | ||
'0x7C9529A67102755B7E6102D6D950AC5D5863C98713805CEC576B945B15B71EAC', | ||
balance: convertToHexValue(25000000000000000000), | ||
}, | ||
], | ||
}; | ||
const smartContract = SMART_CONTRACTS.PIGGYBANK; | ||
it('should NOT show an edit button on a contract interaction confirmation iniated by a dapp', async function () { | ||
await withFixtures( | ||
{ | ||
dapp: true, | ||
fixtures: new FixtureBuilder() | ||
.withPermissionControllerConnectedToTestDapp() | ||
.build(), | ||
ganacheOptions, | ||
smartContract, | ||
title: this.test.title, | ||
}, | ||
async ({ driver, contractRegistry }) => { | ||
const contractAddress = await contractRegistry.getContractAddress( | ||
smartContract, | ||
); | ||
await driver.navigate(); | ||
await driver.fill('#password', 'correct horse battery staple'); | ||
await driver.press('#password', driver.Key.ENTER); | ||
|
||
// deploy contract | ||
await driver.openNewPage( | ||
`http://127.0.0.1:8080/?contract=${contractAddress}`, | ||
); | ||
|
||
// wait for deployed contract, calls and confirms a contract method where ETH is sent | ||
await driver.findClickableElement('#deployButton'); | ||
await driver.clickElement('#depositButton'); | ||
await driver.waitUntilXWindowHandles(3); | ||
const windowHandles = await driver.getAllWindowHandles(); | ||
|
||
await driver.switchToWindowWithTitle( | ||
'MetaMask Notification', | ||
windowHandles, | ||
); | ||
await driver.waitForSelector({ | ||
css: '.confirm-page-container-summary__action__name', | ||
text: 'Deposit', | ||
}); | ||
const editTransactionButton = await driver.isElementPresentAndVisible( | ||
'[data-testid="confirm-page-back-edit-button"]', | ||
); | ||
assert.equal( | ||
editTransactionButton, | ||
false, | ||
`Edit transaction button should not be visible on a contract interaction created by a dapp`, | ||
); | ||
}, | ||
); | ||
}); | ||
|
||
it('should show an edit button on a simple ETH send iniated by a dapp', async function () { | ||
await withFixtures( | ||
{ | ||
dapp: true, | ||
fixtures: new FixtureBuilder() | ||
.withPermissionControllerConnectedToTestDapp() | ||
.build(), | ||
ganacheOptions, | ||
smartContract, | ||
title: this.test.title, | ||
}, | ||
async ({ driver }) => { | ||
await driver.navigate(); | ||
await driver.fill('#password', 'correct horse battery staple'); | ||
await driver.press('#password', driver.Key.ENTER); | ||
|
||
await driver.openNewPage(`http://127.0.0.1:8080/`); | ||
await driver.clickElement('#sendButton'); | ||
await driver.waitUntilXWindowHandles(3); | ||
const windowHandles = await driver.getAllWindowHandles(); | ||
|
||
await driver.switchToWindowWithTitle( | ||
'MetaMask Notification', | ||
windowHandles, | ||
); | ||
await driver.waitForSelector({ | ||
css: '.confirm-page-container-summary__action__name', | ||
text: 'Sending ETH', | ||
}); | ||
const editTransactionButton = await driver.isElementPresentAndVisible( | ||
'[data-testid="confirm-page-back-edit-button"]', | ||
); | ||
assert.equal( | ||
editTransactionButton, | ||
true, | ||
`Edit transaction button should be visible on a contract interaction created by a dapp`, | ||
); | ||
}, | ||
); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters