Skip to content

Commit

Permalink
Merge pull request #185 from matter-labs/QA-543-cover-the-Deposit-tests
Browse files Browse the repository at this point in the history
test: covering UI tests for Deposit
  • Loading branch information
abilevych authored Mar 6, 2024
2 parents a640ca9 + 4babcac commit 6b9943a
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 11 deletions.
2 changes: 2 additions & 0 deletions packages/integration-tests/src/entities.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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({
Expand All @@ -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;
};
Original file line number Diff line number Diff line change
@@ -1,26 +1,28 @@
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") {
const helper = new Helper();
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;
};
53 changes: 53 additions & 0 deletions packages/integration-tests/tests/ui/deposit.spec.ts
Original file line number Diff line number Diff line change
@@ -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);
});

0 comments on commit 6b9943a

Please sign in to comment.