Skip to content

Commit

Permalink
Feat/gasp pool tests v1 (#471)
Browse files Browse the repository at this point in the history
  • Loading branch information
MariuszSzpyt authored Aug 19, 2024
1 parent 4bc9924 commit 9ecf6e4
Show file tree
Hide file tree
Showing 6 changed files with 490 additions and 1 deletion.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@
"test-microapps-chops-fourth": "export CHOPSTICK_UI=true ; rm nonce.db ; rm sudo.lock; node --experimental-specifier-resolution=node --loader ts-node/esm --experimental-vm-modules node_modules/jest/bin/jest.js --verbose --runInBand --ci --group=microappsPosition",
"test-microapps-chops-fifth": "export CHOPSTICK_UI=true ; rm nonce.db ; rm sudo.lock; node --experimental-specifier-resolution=node --loader ts-node/esm --experimental-vm-modules node_modules/jest/bin/jest.js --verbose --runInBand --ci --group=microappsStaking",
"test-microapps-prod-first": "export CHOPSTICK_UI=true ; rm nonce.db ; rm sudo.lock; node --experimental-specifier-resolution=node --loader ts-node/esm --experimental-vm-modules node_modules/jest/bin/jest.js --verbose --runInBand --ci --group=microappsProdDeposit --group=microappsProdSwap --group=microappsProdWallet --group=microappsProdWithdraw --group=microappsProdStaking --group=microappsProdPools",
"test-gasp-ui": "export CHOPSTICK_UI=true ; rm nonce.db ; rm sudo.lock; node --experimental-specifier-resolution=node --loader ts-node/esm --experimental-vm-modules node_modules/jest/bin/jest.js --verbose --runInBand --ci --group=rollupDepositDev --group=rollupWalletDev --group=rollupWithdrawDev --group=rollupSwapDev",
"test-gasp-ui": "export CHOPSTICK_UI=true ; rm nonce.db ; rm sudo.lock; node --experimental-specifier-resolution=node --loader ts-node/esm --experimental-vm-modules node_modules/jest/bin/jest.js --verbose --runInBand --ci --group=rollupDepositDev --group=rollupWalletDev --group=rollupWithdrawDev --group=rollupSwapDev --group=rollupMyPositionsDev",
"test-gasp-prod-first": "export CHOPSTICK_UI=true ; rm nonce.db ; rm sudo.lock; node --experimental-specifier-resolution=node --loader ts-node/esm --experimental-vm-modules node_modules/jest/bin/jest.js --verbose --runInBand --ci --group=rollupWithdrawProd --group=rollupDepositProd",
"cliTool": "node --experimental-specifier-resolution=node --loader ts-node/esm --experimental-vm-modules cliTool/index.ts --runInBand",
"runtimeUpgrade": " jest --verbose --ci --group=upgradeRuntime --runInBand --forceExit"
Expand Down
130 changes: 130 additions & 0 deletions test/rollup-test/rollup-main.my-positions.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
/*
*
* @group rollupMyPositionsDev
*/
import { jest } from "@jest/globals";
import { WebDriver } from "selenium-webdriver";
import { getApi, initApi } from "../../utils/api";
import { DriverBuilder } from "../../utils/frontend/utils/Driver";
import {
acceptNetworkSwitchInNewWindow,
addExtraLogs,
importMetamaskExtension,
} from "../../utils/frontend/utils/Helper";
import "dotenv/config";
import {
connectWallet,
setupPage,
setupPageWithState,
waitForActionNotification,
} from "../../utils/frontend/rollup-utils/Handlers";
import { WalletWrapper } from "../../utils/frontend/rollup-pages/WalletWrapper";
import { TransactionType } from "../../utils/frontend/rollup-pages/NotificationToast";
import { Sidebar } from "../../utils/frontend/rollup-pages/Sidebar";
import { MyPositionsPage } from "../../utils/frontend/rollup-pages/MyPositionsPage";

jest.spyOn(console, "log").mockImplementation(jest.fn());

jest.setTimeout(1500000);
let driver: WebDriver;

let acc_addr = "";
let acc_addr_short = "";
const ETH_ASSET_NAME = "ETH";
const GASP_ASSET_NAME = "GASPV2";

describe("Gasp UI swap tests", () => {
let sidebar: Sidebar;
let myPositionsPage: MyPositionsPage;

beforeAll(async () => {
try {
getApi();
} catch (e) {
await initApi();
}

driver = await DriverBuilder.getInstance();
acc_addr = await importMetamaskExtension(driver, true);
acc_addr_short = acc_addr.slice(-4).toLowerCase();

await setupPage(driver);
await connectWallet(driver, "Metamask", acc_addr_short);
});

it("Remove pool liquidity", async () => {
await setupPageWithState(driver, acc_addr_short);
const walletWrapper = new WalletWrapper(driver);
await walletWrapper.openWalletConnectionInfo();
sidebar = new Sidebar(driver);
await sidebar.clickNavPositions();

myPositionsPage = new MyPositionsPage(driver);
await myPositionsPage.waitForPoolPositionsVisible();
const isPoolMgxKsmVisible = await myPositionsPage.isLiqPoolDisplayed(
GASP_ASSET_NAME,
ETH_ASSET_NAME,
);
expect(isPoolMgxKsmVisible).toBeTruthy();

await myPositionsPage.clickPoolPosition(GASP_ASSET_NAME, ETH_ASSET_NAME);
await myPositionsPage.setupRemoveLiquidityPercentage("1");

await myPositionsPage.clickSwitchNetwork();
await acceptNetworkSwitchInNewWindow(driver);
await myPositionsPage.clickRemoveLiquidity();
await myPositionsPage.clickConfirmFeeAmount();
await waitForActionNotification(driver, TransactionType.RemoveLiquidity);
});

it("Add pool liquidity", async () => {
await setupPageWithState(driver, acc_addr_short);
const walletWrapper = new WalletWrapper(driver);
await walletWrapper.openWalletConnectionInfo();
sidebar = new Sidebar(driver);
await sidebar.clickNavPositions();

myPositionsPage = new MyPositionsPage(driver);
await myPositionsPage.waitForPoolPositionsVisible();
const isPoolMgxKsmVisible = await myPositionsPage.isLiqPoolDisplayed(
GASP_ASSET_NAME,
ETH_ASSET_NAME,
);
expect(isPoolMgxKsmVisible).toBeTruthy();

await myPositionsPage.clickPoolPosition(GASP_ASSET_NAME, ETH_ASSET_NAME);

await myPositionsPage.clickAddLiquidity();
const isFirstTokenNameSet =
await myPositionsPage.isFirstTokenNameSet(GASP_ASSET_NAME);
expect(isFirstTokenNameSet).toBeTruthy();
const isSecondTokenNameSet =
await myPositionsPage.isSecondTokenNameSet(ETH_ASSET_NAME);
expect(isSecondTokenNameSet).toBeTruthy();

// only first token value set by user
await myPositionsPage.setFirstTokenAmount("0.01");
await myPositionsPage.waitSecondTokenAmountSet(true);
await driver.sleep(500);
const firstTokenAmount = await myPositionsPage.getFirstTokenAmount();
expect(firstTokenAmount).toBeGreaterThan(0);
await myPositionsPage.submitAddLiq();

await waitForActionNotification(driver, TransactionType.AddLiquidity);
});

afterEach(async () => {
const session = await driver.getSession();
await addExtraLogs(
driver,
expect.getState().currentTestName + " - " + session.getId(),
);
});

afterAll(async () => {
const api = getApi();
await api.disconnect();
await driver.quit();
DriverBuilder.destroy();
});
});
Loading

0 comments on commit 9ecf6e4

Please sign in to comment.