@assert-equals/headless-wallet
Version:
Web3 dApp testing with a MetaMask equivalent headless wallet, using Playwright or WebDriver —no extension popups
33 lines (26 loc) • 1.38 kB
text/typescript
import { expect, test } from "@playwright/test";
import { HeadlessWalletServer, setupHeadlessWallet } from "../../src/";
let server: HeadlessWalletServer;
test.beforeEach(async ({ page }) => {
// MetaMask test seed https://github.com/MetaMask/metamask-extension/blob/v12.8.1/test/e2e/seeder/ganache.ts
const port: number = 8001;
const mnemonic: string = "phrase upgrade clock rough situate wedding elder clever doctor stamp excess tent";
server = new HeadlessWalletServer({ mnemonic, port });
await server.start();
await setupHeadlessWallet({ page, port });
});
test.afterEach(async () => {
await server.stop();
});
test("Metamask Wallet Test Dapp", async ({ page }) => {
const baseUrl = "https://metamask.github.io/test-dapp/";
await page.goto(baseUrl);
await page.getByRole("button", { name: "USE HEADLESS WALLET" }).click();
await expect(page.getByRole("heading", { name: "Active Provider" })).toBeVisible();
await expect(page.getByText("Name: Headless Wallet")).toBeVisible();
await expect(page.locator("#accounts")).toContainText("0xe18035bf8712672935fdb4e5e431b1a0183d2dfc");
await page.locator("#personalSign").click();
await expect(page.locator("#personalSignResult")).toContainText(
"0xc15bfe971658b5bf67da31edc7fc4906755d49f4cf29b9a74d557f88ec73a395069b934d142f63a77a0773b329c32a473492cca79feb1256f11809943ec7ff261c"
);
});