diff --git a/packages/widgets/src/index.ts b/packages/widgets/src/index.ts index e63922e0..22d0ee13 100644 --- a/packages/widgets/src/index.ts +++ b/packages/widgets/src/index.ts @@ -1,4 +1,3 @@ export * from './widgets.constants'; export * from './widgets.page'; export * from './ethereum'; -export * from './polygon'; diff --git a/packages/widgets/src/polygon/index.ts b/packages/widgets/src/polygon/index.ts deleted file mode 100644 index 0ead3ec3..00000000 --- a/packages/widgets/src/polygon/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './polygon.page'; -export * from './polygon.constants'; diff --git a/packages/widgets/src/polygon/polygon.constants.ts b/packages/widgets/src/polygon/polygon.constants.ts deleted file mode 100644 index 3d5f7f4d..00000000 --- a/packages/widgets/src/polygon/polygon.constants.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { WidgetConfig } from '../widgets.constants'; - -export const POLYGON_WIDGET_CONFIG: WidgetConfig = { - url: 'https://polygon.lido.fi', - nodeUrl: '**/api/rpc?chainId=1', - isDefaultNetwork: true, - name: 'polygon', - networkName: 'Ethereum', - stakeContract: '', - chainName: 'Mainnet', - chainId: 1, - tokenSymbol: 'ETH', -}; diff --git a/packages/widgets/src/polygon/polygon.page.ts b/packages/widgets/src/polygon/polygon.page.ts deleted file mode 100644 index 099d935d..00000000 --- a/packages/widgets/src/polygon/polygon.page.ts +++ /dev/null @@ -1,100 +0,0 @@ -import { POLYGON_WIDGET_CONFIG } from './polygon.constants'; -import { StakeConfig } from '../widgets.constants'; -import { WidgetPage } from '../widgets.page'; -import expect from 'expect'; -import { Logger } from '@nestjs/common'; -import { WalletPage } from '@lidofinance/wallets-testing-wallets'; -import { test, Page } from '@playwright/test'; - -export class PolygonPage implements WidgetPage { - private readonly logger = new Logger(PolygonPage.name); - page: Page; - - constructor(page: Page, private stakeConfig: StakeConfig) { - this.page = page; - } - - async navigate() { - await test.step('Navigate to Polygon widget', async () => { - await this.page.goto(POLYGON_WIDGET_CONFIG.url); - }); - } - - async connectWallet(walletPage: WalletPage) { - await test.step( - 'Connect wallet ' + walletPage.config.COMMON.WALLET_NAME, - async () => { - await this.page.waitForTimeout(2000); - const isConnected = - (await this.page - .locator("button :has-text('Connect wallet')") - .count()) === 0; - if (!isConnected) { - await this.page - .locator("button :has-text('Connect wallet')") - .first() - .click(); - await this.page.waitForTimeout(2000); - if ( - (await this.page - .locator("button :has-text('Stake now')") - .count()) === 0 - ) { - if (!(await this.page.isChecked('input[type=checkbox]'))) - await this.page.click('input[type=checkbox]', { force: true }); - if (walletPage.config.COMMON.SIMPLE_CONNECT) { - await this.page.click( - `button[type=button] :text('${walletPage.config.COMMON.CONNECT_BUTTON_NAME}')`, - ); - } else { - const [connectWalletPage] = await Promise.all([ - this.page.context().waitForEvent('page', { timeout: 5000 }), - this.page.click( - `button[type=button] :text('${walletPage.config.COMMON.CONNECT_BUTTON_NAME}')`, - ), - ]); - await walletPage.connectWallet(connectWalletPage); - } - expect( - await this.page.waitForSelector("button :has-text('Stake now')"), - ).not.toBeNaN(); - await this.page.locator('header > div > button').nth(0).click(); - expect(await this.page.textContent('div[role="dialog"]')).toContain( - `Connected with ${walletPage.config.COMMON.CONNECTED_WALLET_NAME}`, - ); - await this.page.locator('div[role="dialog"] button').nth(0).click(); - } - } - }, - ); - } - - async doStaking(walletPage: WalletPage) { - await test.step('Do staking', async () => { - await this.page.waitForTimeout(4000); - await this.page.fill( - 'input[type=text]', - String(this.stakeConfig.stakeAmount), - ); - const [unlockSignPage] = await Promise.all([ - this.page.context().waitForEvent('page', { timeout: 120000 }), - this.page.click("button :has-text('Unlock tokens')"), - ]); - await walletPage.approveTokenTx?.(unlockSignPage); - await this.page.waitForSelector( - `text=${this.stakeConfig.stakeAmount} MATIC unlocked`, - { timeout: 25000 }, - ); - // Close cross on the po-up have no usable id or locator. - // Simple click to the non-pop-up zone will efficiently close it - await this.page.mouse.click(20, 20); - - const [stakeSignPage] = await Promise.all([ - this.page.context().waitForEvent('page', { timeout: 120000 }), - this.page.click('button[type=submit]'), - ]); - - await walletPage.confirmTx(stakeSignPage); - }); - } -} diff --git a/wallets-testing/browser/browser.constants.ts b/wallets-testing/browser/browser.constants.ts index 59c25a06..d0ea2bae 100644 --- a/wallets-testing/browser/browser.constants.ts +++ b/wallets-testing/browser/browser.constants.ts @@ -8,10 +8,7 @@ import { OkxPage, BitgetPage, } from '@lidofinance/wallets-testing-wallets'; -import { - EthereumPage, - PolygonPage, -} from '@lidofinance/wallets-testing-widgets'; +import { EthereumPage } from '@lidofinance/wallets-testing-widgets'; export const WALLET_PAGES = { metamask: MetamaskPage, @@ -26,5 +23,4 @@ export const WALLET_PAGES = { export const WIDGET_PAGES = { ethereum: EthereumPage, - polygon: PolygonPage, }; diff --git a/wallets-testing/test/widgets/polygon.spec.ts b/wallets-testing/test/widgets/polygon.spec.ts deleted file mode 100644 index 2add3388..00000000 --- a/wallets-testing/test/widgets/polygon.spec.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { INestApplication } from '@nestjs/common'; -import { prepareNodeModule } from '../../commons'; -import { - COIN98_COMMON_CONFIG, - METAMASK_COMMON_CONFIG, - COINBASE_COMMON_CONFIG, - EXODUS_COMMON_CONFIG, - OKX_COMMON_CONFIG, - BITGET_COMMON_CONFIG, - TRUST_WALLET_COMMON_CONFIG, -} from '@lidofinance/wallets-testing-wallets'; -import { POLYGON_WIDGET_CONFIG } from '@lidofinance/wallets-testing-widgets'; -import { BrowserModule } from '../../browser/browser.module'; -import { BrowserService } from '../../browser/browser.service'; -import { MATIC_TOKEN } from './consts'; -import { test } from '@playwright/test'; - -test.describe('Polygon', () => { - let app: INestApplication; - let browserService: BrowserService; - - test.beforeAll(async () => { - const moduleFixture: TestingModule = await Test.createTestingModule({ - imports: [prepareNodeModule(), BrowserModule], - }).compile(); - app = moduleFixture.createNestApplication(); - await app.init(); - browserService = moduleFixture.get(BrowserService); - }); - - test.skip(`Metamask stake`, async () => { - await browserService.setupWithNode( - METAMASK_COMMON_CONFIG, - POLYGON_WIDGET_CONFIG, - { - stakeAmount: 100, - tokenAddress: MATIC_TOKEN, - mappingSlot: 0, - }, - ); - await browserService.stake(); - }); - - //skipped since of broken connection to polygon widget - test.skip(`Coin98 connect`, async () => { - await browserService.setup(COIN98_COMMON_CONFIG, POLYGON_WIDGET_CONFIG); - await browserService.connectWallet(); - }); - - test.skip('Exodus connect', async () => { - await browserService.setup(EXODUS_COMMON_CONFIG, POLYGON_WIDGET_CONFIG); - await browserService.connectWallet(); - }); - - test('Coinbase connect', async () => { - await browserService.setup(COINBASE_COMMON_CONFIG, POLYGON_WIDGET_CONFIG); - await browserService.connectWallet(); - }); - - test(`OKX connect`, async () => { - await browserService.setup(OKX_COMMON_CONFIG, POLYGON_WIDGET_CONFIG); - await browserService.connectWallet(); - }); - - test(`BitGet connect`, async () => { - await browserService.setup(BITGET_COMMON_CONFIG, POLYGON_WIDGET_CONFIG); - await browserService.connectWallet(); - }); - - test(`Trust wallet connect`, async () => { - await browserService.setup( - TRUST_WALLET_COMMON_CONFIG, - POLYGON_WIDGET_CONFIG, - ); - await browserService.connectWallet(); - }); - - test.afterEach(async () => { - await browserService.teardown(); - }); -});