Skip to content

Commit b486524

Browse files
authored
Snaps E2E Test Upgrades for the new test-snaps UI (#14980)
* fixed e2e tests for new UI * fixed scrolling in tests to be bi-compatible * updated enums to point to new UI version
1 parent 2366d1c commit b486524

File tree

6 files changed

+57
-78
lines changed

6 files changed

+57
-78
lines changed

test/e2e/snaps/enums.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
module.exports = {
2-
TEST_SNAPS_WEBSITE_URL: 'https://metamask.github.io/test-snaps/1.0.0',
2+
TEST_SNAPS_WEBSITE_URL: 'https://metamask.github.io/test-snaps/2.0.0',
33
};

test/e2e/snaps/test-snap-bip-44.spec.js

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,16 @@ describe('Test Snap bip-44', function () {
3131

3232
// navigate to test snaps page and connect
3333
await driver.driver.get(TEST_SNAPS_WEBSITE_URL);
34-
await driver.fill('.snapId3', 'npm:@metamask/test-snap-bip44');
35-
await driver.clickElement({
36-
text: 'Connect BIP-44 Snap',
37-
tag: 'button',
38-
});
34+
await driver.delay(1000);
35+
await driver.fill('#snapId3', 'npm:@metamask/test-snap-bip44');
36+
37+
// reveal snapId3 by finding and scrolling to #snapId4
38+
const snapButton = await driver.findElement('#snapId4');
39+
await driver.scrollToElement(snapButton);
40+
await driver.delay(500);
41+
42+
// connect the snap
43+
await driver.clickElement('#connectBip44');
3944

4045
// switch to metamask extension and click connect
4146
await driver.waitUntilXWindowHandles(2, 5000, 10000);
@@ -77,14 +82,11 @@ describe('Test Snap bip-44', function () {
7782
await driver.waitUntilXWindowHandles(1, 5000, 10000);
7883
windowHandles = await driver.getAllWindowHandles();
7984
await driver.switchToWindowWithTitle('Test Snaps', windowHandles);
80-
await driver.clickElement({
81-
text: 'Send Test to BIP-44 Snap',
82-
tag: 'button',
83-
});
85+
await driver.clickElement('#sendBip44');
8486

8587
// check the results of the public key test
8688
await driver.delay(2000);
87-
const bip44Result = await driver.findElement('.bip44Result');
89+
const bip44Result = await driver.findElement('#bip44Result');
8890
assert.equal(
8991
await bip44Result.getText(),
9092
'Public key: "0x86debb44fb3a984d93f326131d4c1db0bc39644f1a67b673b3ab45941a1cea6a385981755185ac4594b6521e4d1e8d1"',

test/e2e/snaps/test-snap-confirm.spec.js

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,8 @@ describe('Test Snap Confirm', function () {
3131

3232
// navigate to test snaps page and connect
3333
await driver.driver.get(TEST_SNAPS_WEBSITE_URL);
34-
await driver.fill('.snapId1', 'npm:@metamask/test-snap-confirm');
35-
await driver.clickElement({
36-
text: 'Connect To Confirm Snap',
37-
tag: 'button',
38-
});
34+
await driver.fill('#snapId1', 'npm:@metamask/test-snap-confirm');
35+
await driver.clickElement('#connectHello');
3936

4037
// switch to metamask extension and click connect
4138
await driver.waitUntilXWindowHandles(2, 5000, 10000);
@@ -70,7 +67,7 @@ describe('Test Snap Confirm', function () {
7067
await driver.waitUntilXWindowHandles(1, 5000, 10000);
7168
windowHandles = await driver.getAllWindowHandles();
7269
await driver.switchToWindowWithTitle('Test Snaps', windowHandles);
73-
await driver.clickElement('.sendConfirmButton');
70+
await driver.clickElement('#sendConfirmButton');
7471

7572
// hit 'approve' on the custom confirm
7673
await driver.waitUntilXWindowHandles(2, 5000, 10000);
@@ -88,7 +85,7 @@ describe('Test Snap Confirm', function () {
8885
await driver.waitUntilXWindowHandles(1, 5000, 10000);
8986
windowHandles = await driver.getAllWindowHandles();
9087
await driver.switchToWindowWithTitle('Test Snaps', windowHandles);
91-
const confirmResult = await driver.findElement('.confirmResult');
88+
const confirmResult = await driver.findElement('#confirmResult');
9289
assert.equal(await confirmResult.getText(), 'true');
9390
},
9491
);

test/e2e/snaps/test-snap-error.spec.js

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,8 @@ describe('Test Snap Error', function () {
3030

3131
// navigate to test snaps page and connect
3232
await driver.driver.get(TEST_SNAPS_WEBSITE_URL);
33-
await driver.fill('.snapId2', 'npm:@metamask/test-snap-error');
34-
await driver.clickElement({
35-
text: 'Connect Error Snap',
36-
tag: 'button',
37-
});
33+
await driver.fill('#snapId2', 'npm:@metamask/test-snap-error');
34+
await driver.clickElement('#connectError');
3835

3936
// switch to metamask extension and click connect
4037
await driver.waitUntilXWindowHandles(2, 5000, 10000);
@@ -68,10 +65,7 @@ describe('Test Snap Error', function () {
6865
await driver.waitUntilXWindowHandles(1, 5000, 10000);
6966
windowHandles = await driver.getAllWindowHandles();
7067
await driver.switchToWindowWithTitle('Test Snaps', windowHandles);
71-
await driver.clickElement({
72-
text: 'Send Test to Error Snap',
73-
tag: 'button',
74-
});
68+
await driver.clickElement('#sendError');
7569

7670
await driver.navigate(PAGES.HOME);
7771

test/e2e/snaps/test-snap-managestate.spec.js

Lines changed: 25 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ describe('Test Snap manageState', function () {
1313
},
1414
],
1515
};
16+
1617
await withFixtures(
1718
{
1819
fixtures: 'imported-account',
@@ -29,13 +30,18 @@ describe('Test Snap manageState', function () {
2930
await driver.fill('#password', 'correct horse battery staple');
3031
await driver.press('#password', driver.Key.ENTER);
3132

32-
// navigate to test snaps page and connect
33+
// navigate to test snaps page, then fill in the snapId
3334
await driver.driver.get(TEST_SNAPS_WEBSITE_URL);
34-
await driver.fill('.snapId3', 'npm:@metamask/test-snap-managestate');
35-
await driver.clickElement({
36-
text: 'Connect manageState Snap',
37-
tag: 'button',
38-
});
35+
await driver.delay(1000);
36+
await driver.fill('#snapId4', 'npm:@metamask/test-snap-managestate');
37+
38+
// find and scroll to the rest of the card
39+
const snapButton = await driver.findElement('#snapId4');
40+
await driver.scrollToElement(snapButton);
41+
await driver.delay(500);
42+
43+
// connect the snap
44+
await driver.clickElement('#connectManageState');
3945

4046
// switch to metamask extension and click connect
4147
await driver.waitUntilXWindowHandles(2, 5000, 10000);
@@ -51,7 +57,6 @@ describe('Test Snap manageState', function () {
5157
},
5258
10000,
5359
);
54-
5560
await driver.delay(2000);
5661

5762
// approve install of snap
@@ -70,67 +75,46 @@ describe('Test Snap manageState', function () {
7075
await driver.waitUntilXWindowHandles(1, 5000, 10000);
7176
windowHandles = await driver.getAllWindowHandles();
7277
await driver.switchToWindowWithTitle('Test Snaps', windowHandles);
73-
await driver.fill('.dataManageState', '23');
74-
await driver.clickElement({
75-
text: 'Send data to manageState Snap',
76-
tag: 'button',
77-
});
78+
await driver.fill('#dataManageState', '23');
79+
await driver.clickElement('#sendManageState');
7880

7981
// check the results of the public key test
80-
await driver.delay(2000);
82+
await driver.delay(500);
8183
const manageStateResult = await driver.findElement(
82-
'.sendManageStateResult',
84+
'#sendManageStateResult',
8385
);
8486
assert.equal(await manageStateResult.getText(), 'true');
8587

8688
// click get results
87-
await driver.waitUntilXWindowHandles(1, 5000, 10000);
88-
windowHandles = await driver.getAllWindowHandles();
89-
await driver.switchToWindowWithTitle('Test Snaps', windowHandles);
90-
await driver.clickElement({
91-
text: 'Get data from manageState Snap',
92-
tag: 'button',
93-
});
89+
await driver.clickElement('#retrieveManageState');
9490

9591
// check the results
96-
await driver.delay(2000);
92+
await driver.delay(500);
9793
const retrieveManageStateResult = await driver.findElement(
98-
'.retrieveManageStateResult',
94+
'#retrieveManageStateResult',
9995
);
10096
assert.equal(
10197
await retrieveManageStateResult.getText(),
10298
'{"testState":["23"]}',
10399
);
104100

105101
// click clear results
106-
await driver.waitUntilXWindowHandles(1, 5000, 10000);
107-
windowHandles = await driver.getAllWindowHandles();
108-
await driver.switchToWindowWithTitle('Test Snaps', windowHandles);
109-
await driver.clickElement({
110-
text: 'Clear data of manageState Snap',
111-
tag: 'button',
112-
});
102+
await driver.clickElement('#clearManageState');
113103

114104
// check if true
115-
await driver.delay(2000);
105+
await driver.delay(500);
116106
const clearManageStateResult = await driver.findElement(
117-
'.clearManageStateResult',
107+
'#clearManageStateResult',
118108
);
119109
assert.equal(await clearManageStateResult.getText(), 'true');
120110

121111
// click get results again
122-
await driver.waitUntilXWindowHandles(1, 5000, 10000);
123-
windowHandles = await driver.getAllWindowHandles();
124-
await driver.switchToWindowWithTitle('Test Snaps', windowHandles);
125-
await driver.clickElement({
126-
text: 'Get data from manageState Snap',
127-
tag: 'button',
128-
});
112+
await driver.clickElement('#retrieveManageState');
129113

130114
// check result array is empty
131-
await driver.delay(2000);
115+
await driver.delay(500);
132116
const retrieveManageStateResult2 = await driver.findElement(
133-
'.retrieveManageStateResult',
117+
'#retrieveManageStateResult',
134118
);
135119
assert.equal(
136120
await retrieveManageStateResult2.getText(),

test/e2e/snaps/test-snap-notification.spec.js

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,18 @@ describe('Test Snap Notification', function () {
3030
await driver.fill('#password', 'correct horse battery staple');
3131
await driver.press('#password', driver.Key.ENTER);
3232

33-
// navigate to test snaps page and connect
33+
// navigate to test snaps page
3434
await driver.driver.get(TEST_SNAPS_WEBSITE_URL);
35-
await driver.fill('.snapId5', 'npm:@metamask/test-snap-notification');
36-
await driver.clickElement({
37-
text: 'Connect Notification Snap',
38-
tag: 'button',
39-
});
35+
await driver.delay(1000);
36+
37+
// find and scroll down to snapId5
38+
const snapButton = await driver.findElement('#snapId5');
39+
await driver.scrollToElement(snapButton);
40+
await driver.delay(500);
41+
await driver.fill('#snapId5', 'npm:@metamask/test-snap-notification');
42+
43+
// connect the snap
44+
await driver.clickElement('#connectNotification');
4045

4146
// switch to metamask extension and click connect
4247
await driver.waitUntilXWindowHandles(2, 5000, 10000);
@@ -70,10 +75,7 @@ describe('Test Snap Notification', function () {
7075
await driver.waitUntilXWindowHandles(1, 5000, 10000);
7176
windowHandles = await driver.getAllWindowHandles();
7277
await driver.switchToWindowWithTitle('Test Snaps', windowHandles);
73-
await driver.clickElement({
74-
text: 'Send InApp Notification',
75-
tag: 'button',
76-
});
78+
await driver.clickElement('#sendInAppNotification');
7779

7880
// try to go to the MM pages
7981
await driver.navigate(PAGES.HOME);

0 commit comments

Comments
 (0)