mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-26 12:29:06 +01:00
354788510e
* Update UI (for audit) Revert yarn.lock change Update e2e tests with new copy for a button Make UI changes to custom Snap UI Update UI on snap installation success page Fix icon on installation success Fix snap name font weight in installation page Add UI changes for Snap installation failed page Add new copy for snap installation screen Update e2e tests OK button name Update OK button names in e2e tests Return previous functionality of update flow Add error message handling for update screens * Fix after rebase * Fix messages.json update message * Revert SCSS changes * Refactor failed and success screen rendering
167 lines
5.9 KiB
JavaScript
167 lines
5.9 KiB
JavaScript
const { withFixtures } = require('../helpers');
|
|
const FixtureBuilder = require('../fixture-builder');
|
|
const { TEST_SNAPS_WEBSITE_URL } = require('./enums');
|
|
|
|
describe('Test Snap bip-32', function () {
|
|
it('tests various functions of bip-32', async function () {
|
|
const ganacheOptions = {
|
|
accounts: [
|
|
{
|
|
secretKey:
|
|
'0x7C9529A67102755B7E6102D6D950AC5D5863C98713805CEC576B945B15B71EAC',
|
|
},
|
|
],
|
|
};
|
|
await withFixtures(
|
|
{
|
|
fixtures: new FixtureBuilder().build(),
|
|
ganacheOptions,
|
|
failOnConsoleError: false,
|
|
title: this.test.title,
|
|
},
|
|
async ({ driver }) => {
|
|
await driver.navigate();
|
|
|
|
// enter pw into extension
|
|
await driver.fill('#password', 'correct horse battery staple');
|
|
await driver.press('#password', driver.Key.ENTER);
|
|
|
|
// navigate to test snaps page and connect
|
|
await driver.driver.get(TEST_SNAPS_WEBSITE_URL);
|
|
await driver.delay(1000);
|
|
|
|
// find and scroll to the bip32 test and connect
|
|
const snapButton1 = await driver.findElement('#connectBip32');
|
|
await driver.scrollToElement(snapButton1);
|
|
await driver.delay(1000);
|
|
await driver.clickElement('#connectBip32');
|
|
await driver.delay(1000);
|
|
|
|
// switch to metamask extension and click connect
|
|
let windowHandles = await driver.waitUntilXWindowHandles(
|
|
2,
|
|
1000,
|
|
10000,
|
|
);
|
|
await driver.switchToWindowWithTitle(
|
|
'MetaMask Notification',
|
|
windowHandles,
|
|
);
|
|
await driver.clickElement({
|
|
text: 'Connect',
|
|
tag: 'button',
|
|
});
|
|
|
|
await driver.waitForSelector({ text: 'Install' });
|
|
|
|
await driver.clickElement({
|
|
text: 'Install',
|
|
tag: 'button',
|
|
});
|
|
|
|
// wait for permissions popover, click checkboxes and confirm
|
|
await driver.delay(500);
|
|
await driver.clickElement('#key-access-bip32-m-44h-0h-secp256k1-0');
|
|
await driver.clickElement('#key-access-bip32-m-44h-0h-ed25519-1');
|
|
await driver.clickElement(
|
|
'#public-key-access-bip32-m-44h-0h-secp256k1-0',
|
|
);
|
|
await driver.clickElement({
|
|
text: 'Confirm',
|
|
tag: 'button',
|
|
});
|
|
|
|
await driver.waitForSelector({ text: 'OK' });
|
|
await driver.clickElement({
|
|
text: 'OK',
|
|
tag: 'button',
|
|
});
|
|
|
|
// switch back to test-snaps window
|
|
await driver.switchToWindowWithTitle('Test Snaps', windowHandles);
|
|
|
|
// wait for npm installation success
|
|
await driver.waitForSelector({
|
|
css: '#connectBip32',
|
|
text: 'Reconnect to BIP-32 Snap',
|
|
});
|
|
|
|
// scroll to and click get public key
|
|
await driver.delay(1000);
|
|
await driver.waitForSelector({ text: 'Get Public Key' });
|
|
await driver.clickElement('#bip32GetPublic');
|
|
|
|
// check for proper public key response using waitForSelector
|
|
await driver.waitForSelector({
|
|
css: '#bip32PublicKeyResult',
|
|
text: '"0x043e98d696ae15caef75fa8dd204a7c5c08d1272b2218ba3c20feeb4c691eec366606ece56791c361a2320e7fad8bcbb130f66d51c591fc39767ab2856e93f8dfb',
|
|
});
|
|
|
|
// scroll to and click get compressed public key
|
|
await driver.waitForSelector({ text: 'Get Compressed Public Key' });
|
|
await driver.clickElement('#bip32GetCompressedPublic');
|
|
|
|
// check for proper public key response using waitForSelector
|
|
await driver.waitForSelector({
|
|
css: '#bip32PublicKeyResult',
|
|
text: '"0x033e98d696ae15caef75fa8dd204a7c5c08d1272b2218ba3c20feeb4c691eec366',
|
|
});
|
|
|
|
// wait then run SECP256K1 test
|
|
await driver.fill('#bip32Message-secp256k1', 'foo bar');
|
|
await driver.clickElement('#sendBip32-secp256k1');
|
|
|
|
// hit 'approve' on the signature confirmation
|
|
windowHandles = await driver.waitUntilXWindowHandles(2, 1000, 10000);
|
|
await driver.switchToWindowWithTitle(
|
|
'MetaMask Notification',
|
|
windowHandles,
|
|
);
|
|
await driver.clickElement({
|
|
text: 'Approve',
|
|
tag: 'button',
|
|
});
|
|
|
|
// switch back to the test-snaps window
|
|
windowHandles = await driver.waitUntilXWindowHandles(1, 1000, 10000);
|
|
await driver.switchToWindowWithTitle('Test Snaps', windowHandles);
|
|
|
|
// check results of the secp256k1 signature with waitForSelector
|
|
await driver.waitForSelector({
|
|
css: '#bip32MessageResult-secp256k1',
|
|
text: '"0x3045022100b3ade2992ea3e5eb58c7550e9bddad356e9554233c8b099ebc3cb418e9301ae2022064746e15ae024808f0ba5d860e44dc4c97e65c8cba6f5ef9ea2e8c819930d2dc',
|
|
});
|
|
|
|
// scroll further into messages section
|
|
const snapButton4 = await driver.findElement('#sendBip32-ed25519');
|
|
await driver.scrollToElement(snapButton4);
|
|
|
|
// wait then run ed25519 test
|
|
await driver.delay(500);
|
|
await driver.fill('#bip32Message-ed25519', 'foo bar');
|
|
await driver.clickElement('#sendBip32-ed25519');
|
|
|
|
// hit 'approve' on the custom confirm
|
|
windowHandles = await driver.waitUntilXWindowHandles(2, 1000, 10000);
|
|
await driver.switchToWindowWithTitle(
|
|
'MetaMask Notification',
|
|
windowHandles,
|
|
);
|
|
await driver.clickElement({
|
|
text: 'Approve',
|
|
tag: 'button',
|
|
});
|
|
|
|
windowHandles = await driver.waitUntilXWindowHandles(1, 1000, 10000);
|
|
await driver.switchToWindowWithTitle('Test Snaps', windowHandles);
|
|
|
|
// check results of ed25519 signature with waitForSelector
|
|
await driver.waitForSelector({
|
|
css: '#bip32MessageResult-ed25519',
|
|
text: '"0xf3215b4d6c59aac7e01b4ceef530d1e2abf4857926b85a81aaae3894505699243768a887b7da4a8c2e0f25196196ba290b6531050db8dc15c252bdd508532a0a"',
|
|
});
|
|
},
|
|
);
|
|
});
|
|
});
|