diff --git a/packages/integration-tests/src/entities.ts b/packages/integration-tests/src/entities.ts index 5c1879e5b1..f5008ddbf5 100644 --- a/packages/integration-tests/src/entities.ts +++ b/packages/integration-tests/src/entities.ts @@ -30,6 +30,8 @@ export enum Buffer { emptyWalletAddress = "./buffer/emptyWalletAddress.txt", failedState = "./buffer/failedState.txt", customToken = "./buffer/customToken.txt", + txEthDeposit = "./buffer/txEthDeposit.txt", + txERC20Deposit = "./buffer/txERC20Deposit.txt", } export enum Logger { diff --git a/packages/integration-tests/src/playbook/scenarios/deposit/depositERC20.ts b/packages/integration-tests/src/playbook/scenarios/deposit/depositERC20.ts index f18724a450..0d3a48d1cb 100644 --- a/packages/integration-tests/src/playbook/scenarios/deposit/depositERC20.ts +++ b/packages/integration-tests/src/playbook/scenarios/deposit/depositERC20.ts @@ -11,7 +11,8 @@ const syncProvider = new zksync.Provider(localConfig.L2Network); const ethProvider = ethers.getDefaultProvider(localConfig.L1Network); const syncWallet = new zksync.Wallet(localConfig.privateKey, syncProvider, ethProvider); const playbookRoot = "src/playbook"; -const bufferFile = playbookRoot + "/" + Buffer.L2deposited; +const bufferAddressL2DepositedFile = playbookRoot + "/" + Buffer.L2deposited; +const bufferTxErc20DepositFile = playbookRoot + "/" + Buffer.txERC20Deposit; export const depositERC20 = async function (sum = "0.5", tokenAddress: string, units = 18) { const deposit = await syncWallet.deposit({ @@ -23,15 +24,14 @@ export const depositERC20 = async function (sum = "0.5", tokenAddress: string, u overrides: localConfig.gasLimit, }); - const txHash = deposit.hash; - await deposit.wait(1); - await deposit.waitL1Commit(1); const l2TokenAddress = await syncProvider.l2TokenAddress(tokenAddress); console.log("L2 token address ", l2TokenAddress); - await fs.writeFile(bufferFile, l2TokenAddress); - await helper.txHashLogger(Logger.deposit, txHash, "ERC20 token"); + const txHash = await deposit.waitFinalize(); + await helper.txHashLogger(Logger.deposit, txHash.transactionHash, "ERC20 token"); + await fs.writeFile(bufferAddressL2DepositedFile, l2TokenAddress); + await fs.writeFile(bufferTxErc20DepositFile, txHash.transactionHash); return txHash; }; diff --git a/packages/integration-tests/src/playbook/scenarios/deposit/depositETH.ts b/packages/integration-tests/src/playbook/scenarios/deposit/depositETH.ts index e35e6b6259..f15e27b30b 100644 --- a/packages/integration-tests/src/playbook/scenarios/deposit/depositETH.ts +++ b/packages/integration-tests/src/playbook/scenarios/deposit/depositETH.ts @@ -1,8 +1,9 @@ import * as ethers from "ethers"; +import { promises as fs } from "fs"; import * as zksync from "zksync-web3"; import { localConfig } from "../../../config"; -import { Logger } from "../../../entities"; +import { Buffer, Logger } from "../../../entities"; import { Helper } from "../../../helper"; export const depositEth = async function (sum = "0.000009") { @@ -10,17 +11,18 @@ export const depositEth = async function (sum = "0.000009") { const syncProvider = new zksync.Provider(localConfig.L2Network); const ethProvider = ethers.getDefaultProvider(localConfig.L1Network); const syncWallet = new zksync.Wallet(localConfig.privateKey, syncProvider, ethProvider); + const playbookRoot = "src/playbook/"; + const bufferFile = playbookRoot + Buffer.txEthDeposit; const deposit = await syncWallet.deposit({ token: zksync.utils.ETH_ADDRESS, amount: ethers.utils.parseEther(sum), l2GasLimit: localConfig.l2GasLimit, }); - - const txHash = deposit.hash; - await deposit.wait(1); - await helper.txHashLogger(Logger.deposit, txHash, "ETH"); + const txHash = await deposit.waitFinalize(); + await helper.txHashLogger(Logger.deposit, txHash.transactionHash, "ETH"); + await fs.writeFile(bufferFile, txHash.transactionHash); return txHash; }; diff --git a/packages/integration-tests/tests/ui/deposit.spec.ts b/packages/integration-tests/tests/ui/deposit.spec.ts new file mode 100644 index 0000000000..5d6f5f2431 --- /dev/null +++ b/packages/integration-tests/tests/ui/deposit.spec.ts @@ -0,0 +1,53 @@ +import { expect, test } from "@playwright/test"; + +import { config } from "./config"; +import { BlockExplorer, Buffer, Wallets } from "../../src/entities"; +import { Helper } from "../../src/helper"; + +import type { Locator } from "@playwright/test"; + +const bufferRoute = "src/playbook/"; +const helper = new Helper(); +let url: string; +let bufferFile; +let depositTxHash: string; +let initiatorAddress: string; +let hash, initiatorAddressElement, ethValue, erc20Value: Locator; + +//@id1660 +test("Check Deposit ETH transaction on BE", async ({ page }) => { + bufferFile = bufferRoute + Buffer.txEthDeposit; + depositTxHash = await helper.getStringFromFile(bufferFile); + url = BlockExplorer.baseUrl + `/tx/${depositTxHash}` + BlockExplorer.localNetwork; + initiatorAddress = Wallets.richWalletAddress; + + await page.goto(url); + + hash = await page.locator(`//*[text()="Transaction Hash"]/..//..//*[text()="${depositTxHash}"]`).first(); + initiatorAddressElement = await page.locator(`text=${initiatorAddress}`).first(); + ethValue = await page.locator(`text=0.0000001`).first(); + + await expect(hash).toBeVisible(config.defaultTimeout); + await expect(ethValue).toBeVisible(config.defaultTimeout); + await expect(initiatorAddressElement).toBeVisible(config.defaultTimeout); +}); + +//@id1681 +test("Check on BE Deposit the custom ERC-20 token", async ({ page }) => { + bufferFile = bufferRoute + Buffer.txERC20Deposit; + depositTxHash = await helper.getStringFromFile(bufferFile); + url = BlockExplorer.baseUrl + `/tx/${depositTxHash}` + BlockExplorer.localNetwork; + initiatorAddress = Wallets.richWalletAddress; + + await page.goto(url); + + hash = await page.locator(`//*[text()="Transaction Hash"]/..//..//*[text()="${depositTxHash}"]`).first(); + initiatorAddressElement = await page.locator( + `//*[text()="From"]/..//*[text()="L1"]/..//*[text()="0x36615Cf349d...c049"]` + ); + erc20Value = await page.locator(`//*[text()="0x36615Cf349d...c049"]/..//..//*[text()="100"]`); + + await expect(hash).toBeVisible(config.defaultTimeout); + await expect(erc20Value).toBeVisible(config.defaultTimeout); + await expect(initiatorAddressElement).toBeVisible(config.defaultTimeout); +});