-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvtvl.spec.ts
89 lines (72 loc) · 3.85 KB
/
vtvl.spec.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import { test } from "../fixtures/test.fixtures";
import * as metamask from "@synthetixio/synpress/commands/metamask";
import { faker } from "@faker-js/faker";
import * as dotenv from "dotenv";
import { ethers } from "ethers";
dotenv.config();
test.describe("Verify page actions over Metamask", async () => {
test("Sign the message", async ({ recipientDemoPage }) => {
const walletAddress: string = process.env.ADDRESS!;
const testMessage: string = faker.hacker.phrase();
await recipientDemoPage.openPage();
await recipientDemoPage.checkPageIsLoadedAndReadyToUse();
await metamask.acceptAccess();
await recipientDemoPage.verifyMetamaskIsConnected(walletAddress);
await recipientDemoPage.setWalletAddress(walletAddress);
await recipientDemoPage.setMessage(testMessage);
await recipientDemoPage.clickSignTheMessageButton();
await metamask.confirmPermissionToSpend();
await recipientDemoPage.verifyReceivedSignatureString();
});
test("Verify valid signature", async ({ recipientDemoPage }) => {
const walletAddress: string = process.env.ADDRESS!;
const testMessage: string = faker.hacker.phrase();
await recipientDemoPage.openPage();
await recipientDemoPage.checkPageIsLoadedAndReadyToUse();
await metamask.acceptAccess();
await recipientDemoPage.verifyMetamaskIsConnected(walletAddress);
await recipientDemoPage.setWalletAddress(walletAddress);
await recipientDemoPage.setMessage(testMessage);
await recipientDemoPage.clickSignTheMessageButton();
await metamask.confirmPermissionToSpend();
await recipientDemoPage.clickVerifyTheSignatureButton();
await recipientDemoPage.validSignaturePopupIsDisplayed();
});
test("Verify invalid signature pop-up for invalid message text", async ({ recipientDemoPage }) => {
const walletAddress: string = process.env.ADDRESS!;
const testMessage1: string = faker.hacker.phrase();
await recipientDemoPage.openPage();
await recipientDemoPage.checkPageIsLoadedAndReadyToUse();
await metamask.acceptAccess();
await recipientDemoPage.verifyMetamaskIsConnected(walletAddress);
await recipientDemoPage.setWalletAddress(walletAddress);
await recipientDemoPage.setMessage(testMessage1);
await recipientDemoPage.clickSignTheMessageButton();
await metamask.confirmPermissionToSpend();
await recipientDemoPage.verifyReceivedSignatureString();
const testMessage2: string = faker.animal.cat();
const signature: string = await recipientDemoPage.getSignatureString();
const splitSignature = ethers.utils.splitSignature(signature);
const publicKey: string = ethers.utils.verifyMessage(testMessage2, splitSignature);
await recipientDemoPage.setMessage(testMessage2);
await recipientDemoPage.clickVerifyTheSignatureButton();
await recipientDemoPage.invalidSignaturePopupIsDisplayed(publicKey);
});
test("Verify invalid signature pop-up for invalid Wallet address", async ({ recipientDemoPage }) => {
const validWalletAddress: string = process.env.ADDRESS!;
const invalidWalletAddress: string = "0x" + faker.random.alphaNumeric(40).toUpperCase();
const testMessage = faker.hacker.phrase();
const publicKey = ethers.Wallet.fromMnemonic(process.env.SEED_PHRASE!).address;
await recipientDemoPage.openPage();
await recipientDemoPage.checkPageIsLoadedAndReadyToUse();
await metamask.acceptAccess();
await recipientDemoPage.verifyMetamaskIsConnected(validWalletAddress);
await recipientDemoPage.setWalletAddress(validWalletAddress);
await recipientDemoPage.setMessage(testMessage);
await recipientDemoPage.clickSignTheMessageButton();
await metamask.confirmPermissionToSpend();
await recipientDemoPage.setWalletAddress(invalidWalletAddress);
await recipientDemoPage.clickVerifyTheSignatureButton();
await recipientDemoPage.invalidSignaturePopupIsDisplayed(publicKey);
});
});