@assert-equals/dappdriver
Version:
DappDriver is an e2e testing framework designed for testing decentralized applications (dApps) using MetaMask, Rainbow or Zerion
59 lines (58 loc) • 3.12 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.enableMetaMaskAutomation = exports.setupMetaMaskWallet = void 0;
const fs_1 = require("fs");
const path_1 = __importDefault(require("path"));
const _1 = require(".");
const page_1 = require("../page");
const dapp_driver_1 = require("../session/dapp-driver");
let createPasswordPage;
let completionPage;
let metametricsPage;
async function setupMetaMaskWallet(seed) {
const page = new page_1.PageObject();
const welcomePage = await page.opensInWindow(_1.Welcome);
await welcomePage.agreeTermsOfUse();
if (seed) {
metametricsPage = await welcomePage.importAnExistingWallet();
const importWithRecoveryPhrasePage = await metametricsPage.noThanks(_1.ImportWithRecoveryPhrase);
await importWithRecoveryPhrasePage.enterSRP(seed);
createPasswordPage = await importWithRecoveryPhrasePage.confirmSecretRecoveryPhrase();
await createPasswordPage.enterPassword();
await createPasswordPage.confirmPassword();
await createPasswordPage.agreePasswordTerms();
completionPage = await createPasswordPage.importWallet();
}
else {
metametricsPage = await welcomePage.createANewWallet();
createPasswordPage = await metametricsPage.noThanks(_1.CreatePassword);
await createPasswordPage.enterPassword();
await createPasswordPage.confirmPassword();
await createPasswordPage.agreePasswordTerms();
const secureYourWalletPage = await createPasswordPage.createWallet();
const reviewRecoveryPage = await secureYourWalletPage.secureMyWallet();
await reviewRecoveryPage.revealSecretRecoveryPhrase();
const recoveryPhrase = await reviewRecoveryPage.getSRP();
const confirmRecoveryPhrase = await reviewRecoveryPage.next();
await confirmRecoveryPhrase.enterRequiredWords(recoveryPhrase);
completionPage = await confirmRecoveryPhrase.confirm();
}
const pinExtensionPage = await completionPage.completeOnboarding();
await pinExtensionPage.next();
const homePage = await pinExtensionPage.done();
const extensionString = await homePage.getCurrentUrl();
const extensionURL = new URL(extensionString);
dapp_driver_1.DappDriver.Instance.Extension = `${extensionURL.protocol}//${extensionURL.host}`;
await homePage.closeAndSwitchToMainWindow(page_1.PageObject);
}
exports.setupMetaMaskWallet = setupMetaMaskWallet;
async function enableMetaMaskAutomation(metaMaskPath) {
const runtimeLavaMoatPath = path_1.default.resolve(metaMaskPath, 'scripts', 'runtime-lavamoat.js');
const file = (0, fs_1.readFileSync)(runtimeLavaMoatPath, 'utf8');
const updatedRuntimeLavaMoatData = file.replace(`"scuttleGlobalThis":{"enabled":true`, `"scuttleGlobalThis":{"enabled":false`);
(0, fs_1.writeFileSync)(runtimeLavaMoatPath, updatedRuntimeLavaMoatData);
}
exports.enableMetaMaskAutomation = enableMetaMaskAutomation;