Skip to content

Commit 8a2214a

Browse files
committed
chore: provider leftovers
1 parent 3a929c1 commit 8a2214a

File tree

5 files changed

+60
-31
lines changed

5 files changed

+60
-31
lines changed

commands/metamask.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1305,14 +1305,15 @@ const metamask = {
13051305
password,
13061306
enableAdvancedSettings,
13071307
enableExperimentalSettings,
1308+
playwrightInstance,
13081309
}) {
13091310
const isCustomNetwork =
13101311
(process.env.NETWORK_NAME &&
13111312
process.env.RPC_URL &&
13121313
process.env.CHAIN_ID) ||
13131314
typeof network == 'object';
13141315

1315-
await playwright.init();
1316+
await playwright.init(playwrightInstance);
13161317
await playwright.assignWindows(PROVIDER);
13171318
await playwright.assignActiveTabName(PROVIDER);
13181319
await module.exports.getExtensionDetails();

commands/phantom.js

+14-9
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ module.exports = {
146146
);
147147

148148
// STEP: Input password, confirm and continue
149+
await new Promise(resolve => setTimeout(resolve, 1000)); // the transitioning is too fast
149150
await playwright.waitAndType(
150151
PROVIDER,
151152
firstTimeFlowImportPageElements.passwordInput,
@@ -166,13 +167,13 @@ module.exports = {
166167
firstTimeFlowImportPageElements.continueAfterPasswordButton,
167168
);
168169
// shortcut confirmation
169-
await new Promise(resolve => setTimeout(resolve, 500)); // the transitioning is too fast
170+
await new Promise(resolve => setTimeout(resolve, 1000)); // the transitioning is too fast
170171
await playwright.waitAndClick(
171172
PROVIDER,
172173
firstTimeFlowImportPageElements.continueOnShortcutConfirm,
173174
);
174175
// finish
175-
await new Promise(resolve => setTimeout(resolve, 500)); // the transitioning is too fast
176+
await new Promise(resolve => setTimeout(resolve, 1000)); // the transitioning is too fast
176177
await playwright.waitAndClick(
177178
PROVIDER,
178179
firstTimeFlowImportPageElements.continueOnShortcutConfirm,
@@ -232,8 +233,12 @@ module.exports = {
232233
await switchToCypressIfNotActive();
233234
return walletAddress;
234235
},
235-
initialSetup: async ({ secretWordsOrPrivateKey, password }) => {
236-
await playwright.init();
236+
initialSetup: async ({
237+
secretWordsOrPrivateKey,
238+
password,
239+
playwrightInstance,
240+
}) => {
241+
await playwright.init(playwrightInstance);
237242
await playwright.assignWindows(PROVIDER);
238243
await playwright.assignActiveTabName(PROVIDER);
239244
await module.exports.getExtensionDetails();
@@ -378,19 +383,19 @@ module.exports = {
378383
},
379384
selectWallet: async (wallet = 'metamask', mode = 'once') => {
380385
const notificationPage = await playwright.switchToNotification(PROVIDER);
381-
if (wallet === 'metamask') {
386+
387+
if (mode === 'always') {
382388
await playwright.waitAndClick(
383389
PROVIDER,
384-
selectWalletElements.buttons.continueWithMetamask,
390+
selectWalletElements.buttons.alwaysUse,
385391
notificationPage,
386392
);
387-
return true;
388393
}
389394

390-
if (mode === 'always') {
395+
if (wallet === 'metamask') {
391396
await playwright.waitAndClick(
392397
PROVIDER,
393-
selectWalletElements.buttons.alwaysUsePhantom,
398+
selectWalletElements.buttons.continueWithMetamask,
394399
notificationPage,
395400
);
396401
return true;

commands/playwright.js

+42-19
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ module.exports = {
3939
const chromium = playwrightInstance
4040
? playwrightInstance
4141
: require('@playwright/test').chromium;
42+
4243
const debuggerDetails = await fetch('http://127.0.0.1:9222/json/version'); //DevSkim: ignore DS137138
4344
const debuggerDetailsConfig = await debuggerDetails.json();
4445
const webSocketDebuggerUrl = debuggerDetailsConfig.webSocketDebuggerUrl;
@@ -127,29 +128,30 @@ module.exports = {
127128
return true;
128129
},
129130
switchToWindow: async provider => {
130-
if (pageWindows[provider].isClosed()) {
131+
if (module.exports.windows(provider).isClosed()) {
131132
const newPage = await browser.contexts()[0].newPage();
132133
if (provider === 'phantom') {
133134
await Promise.all([
134135
newPage.waitForNavigation(),
135136
newPage.goto(
136-
pageWindows[provider]
137+
module.exports
138+
.windows(provider)
137139
.url()
138140
.replace('onboarding.html', 'popup.html'),
139141
),
140142
]);
141143
} else {
142144
await Promise.all([
143145
newPage.waitForNavigation(),
144-
newPage.goto(pageWindows[provider].url()),
146+
newPage.goto(module.exports.windows(provider).url()),
145147
]);
146148
await newPage.waitUntilStable(provider);
147149
}
148150

149151
pageWindows[provider] = newPage;
150152
}
151153

152-
await pageWindows[provider].bringToFront();
154+
await module.exports.windows(provider).bringToFront();
153155
await module.exports.assignActiveTabName(provider);
154156
return true;
155157
},
@@ -168,7 +170,9 @@ module.exports = {
168170
notificationWindows[provider] = page;
169171
retries = 0;
170172
await page.bringToFront();
171-
await module.exports.waitUntilStable(provider, page);
173+
if (provider == 'metamask') {
174+
await module.exports.waitUntilStable(provider, page);
175+
}
172176
if (provider === 'phantom') {
173177
await module.exports.waitFor(provider, app.root, page);
174178
} else {
@@ -193,8 +197,10 @@ module.exports = {
193197
);
194198
}
195199
},
196-
async waitFor(provider, selector, page = pageWindows[provider]) {
197-
await module.exports.waitUntilStable(provider, page);
200+
async waitFor(provider, selector, page = module.exports.windows(provider)) {
201+
if (provider == 'metamask') {
202+
await module.exports.waitUntilStable(provider, page);
203+
}
198204
await page.waitForSelector(selector, { strict: false });
199205
const element = page.locator(selector).first();
200206
await element.waitFor();
@@ -211,7 +217,7 @@ module.exports = {
211217
async waitAndClick(
212218
provider,
213219
selector,
214-
page = pageWindows[provider],
220+
page = module.exports.windows(provider),
215221
args = {},
216222
) {
217223
const element = await module.exports.waitFor(provider, selector, page);
@@ -240,7 +246,7 @@ module.exports = {
240246
} else {
241247
await element.click({ force: args.force });
242248
}
243-
if (process.env.PROVIDER !== 'phantom') {
249+
if (provider === 'metamask') {
244250
await module.exports.waitUntilStable(provider);
245251
}
246252
return element;
@@ -249,19 +255,32 @@ module.exports = {
249255
provider,
250256
selector,
251257
text,
252-
page = pageWindows[provider],
258+
page = module.exports.windows(provider),
253259
) {
254260
await module.exports.waitFor(provider, selector, page);
255261
const element = page.locator(`text=${text}`);
256262
await element.click();
257-
await module.exports.waitUntilStable(provider);
263+
if (provider === 'metamask') {
264+
await module.exports.waitUntilStable(provider);
265+
}
258266
},
259-
async waitAndType(provider, selector, value, page = pageWindows[provider]) {
267+
async waitAndType(
268+
provider,
269+
selector,
270+
value,
271+
page = module.exports.windows(provider),
272+
) {
260273
const element = await module.exports.waitFor(provider, selector, page);
261274
await element.type(value);
262-
await module.exports.waitUntilStable(provider, page);
275+
if (provider === 'metamask') {
276+
await module.exports.waitUntilStable(provider, page);
277+
}
263278
},
264-
async waitAndGetValue(provider, selector, page = pageWindows[provider]) {
279+
async waitAndGetValue(
280+
provider,
281+
selector,
282+
page = module.exports.windows(provider),
283+
) {
265284
const expect = global.expect
266285
? global.expect
267286
: require('@playwright/test').expect;
@@ -273,7 +292,11 @@ module.exports = {
273292
const value = await element.innerText();
274293
return value;
275294
},
276-
async waitAndGetInputValue(provider, selector, page = pageWindows[provider]) {
295+
async waitAndGetInputValue(
296+
provider,
297+
selector,
298+
page = module.exports.windows(provider),
299+
) {
277300
const expect = global.expect
278301
? global.expect
279302
: require('@playwright/test').expect;
@@ -286,7 +309,7 @@ module.exports = {
286309
provider,
287310
selector,
288311
attribute,
289-
page = pageWindows[provider],
312+
page = module.exports.windows(provider),
290313
) {
291314
const expect = global.expect
292315
? global.expect
@@ -300,7 +323,7 @@ module.exports = {
300323
provider,
301324
text,
302325
selector,
303-
page = pageWindows[provider],
326+
page = module.exports.windows(provider),
304327
) {
305328
const element = await module.exports.waitFor(provider, selector, page);
306329
await element.fill('');
@@ -311,7 +334,7 @@ module.exports = {
311334
async waitAndClearWithBackspace(
312335
provider,
313336
selector,
314-
page = pageWindows[provider],
337+
page = module.exports.windows(provider),
315338
) {
316339
await module.exports.waitFor(provider, selector, page);
317340
const inputValue = await page.evaluate(selector, el => el.value);
@@ -324,7 +347,7 @@ module.exports = {
324347
provider,
325348
text,
326349
selector,
327-
page = pageWindows[provider],
350+
page = module.exports.windows(provider),
328351
) {
329352
const element = await module.exports.waitAndClick(
330353
provider,

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@phantom/synpress",
3-
"version": "4.0.0-alpha.1",
3+
"version": "4.0.0-alpha.6",
44
"description": "Synpress is e2e testing framework based around Cypress.io & playwright with included MetaMask support. Test your dapps with ease.",
55
"keywords": [
66
"Synpress",

pages/phantom/select-wallet-page.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@ module.exports.selectWalletElements = {
22
buttons: {
33
continueWithPhantom: '[data-testid="select_wallet--phantom"]',
44
continueWithMetamask: '[data-testid="select_wallet--metamask"]',
5-
alwaysUsePhantom: '[data-testid="metamask_override-always_use_phantom"]',
5+
alwaysUse: '[data-testid="select_wallet--always"]',
66
},
77
};

0 commit comments

Comments
 (0)