From 373777767d69b1ffce11568523907d6adbb95244 Mon Sep 17 00:00:00 2001 From: Sarah Schwartz <58856580+sarahschwartz@users.noreply.github.com> Date: Thu, 25 Jul 2024 13:23:06 -0600 Subject: [PATCH] feat: add test for hardhat testing tutorial (#35) * feat: add test for hardhat testing tutorial * fix: cleanup * fix: move dependencies to dev * fix: address feedback & remove old plugin * fix: wait longer for node --- .github/workflows/playwright.yaml | 24 +++ .gitignore | 3 + bun.lockb | Bin 740381 -> 834505 bytes .../how-to-test-contracts/10.index.md | 151 ++++++++++++------ cspell-config/cspell-zksync.txt | 1 + package.json | 9 +- playwright.config.ts | 80 ++++++++++ tests/how-to-test-contracts.spec.ts | 16 ++ tests/utils/button.ts | 14 ++ tests/utils/files.ts | 68 ++++++++ tests/utils/getTestActions.ts | 20 +++ tests/utils/queries.ts | 8 + tests/utils/runCommand.ts | 79 +++++++++ tests/utils/runTest.ts | 57 +++++++ tests/utils/setup.ts | 44 +++++ tests/utils/visit.ts | 9 ++ 16 files changed, 531 insertions(+), 52 deletions(-) create mode 100644 .github/workflows/playwright.yaml create mode 100644 playwright.config.ts create mode 100644 tests/how-to-test-contracts.spec.ts create mode 100644 tests/utils/button.ts create mode 100644 tests/utils/files.ts create mode 100644 tests/utils/getTestActions.ts create mode 100644 tests/utils/queries.ts create mode 100644 tests/utils/runCommand.ts create mode 100644 tests/utils/runTest.ts create mode 100644 tests/utils/setup.ts create mode 100644 tests/utils/visit.ts diff --git a/.github/workflows/playwright.yaml b/.github/workflows/playwright.yaml new file mode 100644 index 0000000..b0f110a --- /dev/null +++ b/.github/workflows/playwright.yaml @@ -0,0 +1,24 @@ +name: Playwright Tests + +on: + pull_request: + +jobs: + test-tutorials: + timeout-minutes: 20 + runs-on: ubuntu-latest + strategy: + matrix: + tutorial: + - "tests/how-to-test-contracts.spec.ts" + + steps: + - uses: actions/checkout@v4 + - uses: oven-sh/setup-bun@v1 + - name: Install Dependencies + run: bun install --frozen-lockfile + - uses: actions/setup-node@v4 + - name: Install Playwright Browsers + run: bun playwright install chromium --with-deps + - name: Run test for ${{ matrix.tutorial }} + run: bun test:github ${{ matrix.tutorial }} diff --git a/.gitignore b/.gitignore index ec3ec23..0d687db 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,9 @@ logs .DS_Store .fleet .idea +tests-output +test-results +playwright-report # Local env files .env diff --git a/bun.lockb b/bun.lockb index 37e6a8cd575dde7ffce710ba1f7407d4ff1a62a1..192d16273d7ec125268c94a2306b06b06c47dbd1 100755 GIT binary patch delta 176518 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

hkrC2`VGX_ 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 delta 119301 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�&0 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 Ibx3pke-vAeQ2+n{ diff --git a/content/tutorials/how-to-test-contracts/10.index.md b/content/tutorials/how-to-test-contracts/10.index.md index 11ba47a..85f8c8a 100644 --- a/content/tutorials/how-to-test-contracts/10.index.md +++ b/content/tutorials/how-to-test-contracts/10.index.md @@ -6,18 +6,17 @@ description: Learn how to test your smart contracts locally using era-test-node This tutorial provides a step-by-step guide on testing smart contracts using the `hardhat-chai-matchers` plugin in conjunction with the **ZKsync Era Test Node** on your local machine. -To facilitate this process of running tests on the **ZKsync Era Test Node**, you'll also utilize the `hardhat-zksync-node` plugin. +To facilitate this process of running tests on the **ZKsync Era Test Node**, you'll also utilize the `hardhat-zksync` plugin. ## Prerequisites - Node.js installed (version 14.x or later) - Either yarn or npm installed -- Initialized Hardhat TypeScript project ## Era-test-node plugin In this tutorial, the contract functionality is tested using the [ZKsync Era Test Node](https://docs.zksync.io/build/test-and-debug/in-memory-node). -To start local node we use the `hardhat-zksync-node` plugin to integrate this functionality within the Hardhat project. +To start local node we use the `hardhat-zksync` plugin to integrate this functionality within the Hardhat project. ::callout{icon="i-heroicons-exclamation-triangle"} During the alpha phase, ZKsync Era Test Nodes are currently undergoing development, wherein certain functionalities might not be fully supported or operational. @@ -25,34 +24,51 @@ During the alpha phase, ZKsync Era Test Nodes are currently undergoing developme ### Installation -To install the `hardhat-zksync-node` plugin and additional necessary packages, execute the following command: +First, initialize a new Hardhat TypeScript project: + + + +```bash +npx hardhat init +``` + +Select the `Create a TypeScript project` option and install the sample project's dependencies: `hardhat` and `@nomicfoundation/hardhat-toolbox`. + +To install the `hardhat-zksync` plugin, execute the following command: + + ::code-group ```bash [npm] -npm i -D @matterlabs/hardhat-zksync-node +npm i -D @matterlabs/hardhat-zksync ``` ```bash [yarn] -yarn add -D @matterlabs/hardhat-zksync-node +yarn add -D @matterlabs/hardhat-zksync ``` :: Once installed, add the plugin at the top of your `hardhat.config.ts` file. + + ```ts [hardhat.config.ts] -import "@matterlabs/hardhat-zksync-node"; +import "@matterlabs/hardhat-zksync"; ``` ### Starting the ZKsync Era Test Node You can now safely run the **ZKsync Era Test Node** with the following command: + + ::code-group -```bash [npm] -npm hardhat node-zksync +```bash [npx] +npx hardhat node-zksync ``` ```bash [yarn] @@ -61,6 +77,10 @@ yarn hardhat node-zksync :: + + + + ::callout{icon="i-heroicons-exclamation-circle"} We'll want to verify the correctness of our installations and test if we can run a **ZKsync Era Test Node**, without further use of this command in the tutorial. @@ -78,14 +98,22 @@ You should see output similar to this: 09:04:44 INFO ======================================== ``` -Since we've confirmed that the **ZKsync Era Test Node** is functioning properly with the help of the `hardhat-zksync-node` plugin, +Since we've confirmed that the **ZKsync Era Test Node** is functioning properly with the help of the `hardhat-zksync` plugin, we can shut it down and continue with the tutorial. ### Integration with Hardhat -To enable the usage of ZKsync Era Test Node in Hardhat, add the `zksync:true` option to the hardhat network in the `hardhat.config.ts` file: +To enable the usage of ZKsync Era Test Node in Hardhat, +add the `zksync:true` option to the hardhat network in the `hardhat.config.ts` file +and the `latest` version of `zksolc`: -```json + + +```ts +zksolc: { + version: "latest", + }, networks: { hardhat: { zksync: true, @@ -100,34 +128,69 @@ it's necessary to use the `hardhat-chai-matchers` plugin. In the root directory of your project, execute this command: + + ::code-group ```bash [npm] -npm i -D @nomicfoundation/hardhat-chai-matchers chai@4.3.6 @nomiclabs/hardhat-ethers +npm i -D @nomicfoundation/hardhat-chai-matchers chai@4.3.6 ``` ```bash [yarn] -yarn add -D @nomicfoundation/hardhat-chai-matchers chai@4.3.6 @nomiclabs/hardhat-ethers +yarn add -D @nomicfoundation/hardhat-chai-matchers chai@4.3.6 ``` :: After installing it, add the plugin at the top of your `hardhat.config.ts` file: + + ```ts [hardhat.config.ts] -import "@nomicfoundation/hardhat-chai-matchers" +import "@nomicfoundation/hardhat-chai-matchers"; +``` + +With the previous steps completed, your `hardhat.config.ts` file should now be properly configured to include settings for local testing. + + + +```ts [hardhat.config.ts] +import { HardhatUserConfig } from "hardhat/config"; +import "@nomicfoundation/hardhat-toolbox"; +import "@matterlabs/hardhat-zksync"; +import "@nomicfoundation/hardhat-chai-matchers"; + +const config: HardhatUserConfig = { + solidity: "0.8.24", + zksolc: { + version: "latest", + }, + networks: { + hardhat: { + zksync: true, + }, + }, +}; + +export default config; ``` ## Smart contract example To set up the environment for using chai matchers and writing tests, you'll need to create some contracts. -Follow these steps: -1. Navigate to the root of your project. -1. Create a folder named **contracts**. -1. Inside the **contracts** folder, create a file named **Greeter.sol**. +Inside the **contracts** folder, rename the example contract file to **Greeter.sol**. + + + +```bash +mv contracts/Lock.sol contracts/Greeter.sol +``` + +Now replace the example contract in **Greeter.sol** with the new `Greeter` contract below: -Now we should add some code to the new **Greeter.sol** file: + ```solidity [Greeter.sol] // SPDX-License-Identifier: MIT @@ -156,44 +219,26 @@ contract Greeter { ## Write Test Cases -With the previous steps completed, your `hardhat.config.ts` file should now be properly configured to include settings for local testing. +Now you can create a test with the `hardhat-chai-matchers` plugin: -```ts [hardhat.config.ts] -import { HardhatUserConfig } from "hardhat/config"; +Inside the `/test` folder, rename the example test file to `test.ts`. -import "@matterlabs/hardhat-zksync" -import "@nomicfoundation/hardhat-chai-matchers"; + -const config: HardhatUserConfig = { - zksolc: { - version: "latest", - }, - solidity: "0.8.19", - networks: { - hardhat: { - zksync: true, - }, - }, -}; -export default config; +```bash +mv test/Lock.ts test/test.ts ``` -Here are the steps to create test cases with the `hardhat-chai-matchers` plugin: - -1. Navigate to your project's root directory. -1. Create a new folder named `/test`. -1. Inside the `/test` folder, create a file named `test.ts`. - -Once you've completed these steps, you'll be ready to write your tests using the `hardhat-chai-matchers` plugin. +Replace the old test with this example showcasing the functionalities of the contract: -Here's a brief example showcasing the functionalities of the contract: + ```typescript import * as hre from "hardhat"; import { expect } from "chai"; import { Wallet, Provider, Contract } from "zksync-ethers"; import { Deployer } from "@matterlabs/hardhat-zksync"; -import { ZkSyncArtifact } from "@matterlabs/hardhat-zksync/src/types"; +import { ZkSyncArtifact } from "@matterlabs/hardhat-zksync-deploy/src/types"; const RICH_PRIVATE_KEY = "0x7726827caac94a7f9e1b160f7ea819f172f7b6f9d2a97f992c38edeab82d4110"; @@ -239,14 +284,16 @@ describe("Greeter", function () { Execute the following command in your terminal to run the tests: + + ::code-group -```bash [yarn] -yarn hardhat test +```bash [npx] +npx hardhat test ``` -```bash [npm] -npm hardhat test +```bash [yarn] +yarn hardhat test ``` :: @@ -257,12 +304,14 @@ However, if you prefer to compile manually, simply run the following command `np :: -The `hardhat-zksync-node` plugin overrides the default behavior of the Hardhat `test` task. +The `hardhat-zksync` plugin overrides the default behavior of the Hardhat `test` task. It starts the **ZKsync Era Test Node** before running tests, executes the tests, and then automatically shuts down the node after the test cases are completed. + Additionally, the plugin generates a log file named `era_test_node.log`, which indicates the node's activity and transactions made during the tests. Whenever you re-run the `test` command, the content of `era_test_node.log` is refreshed. + This setup ensures that your tests are executed against a controlled environment, mimicking the behavior of a live network but in a local sandboxed context. It's a common practice to ensure that smart contracts behave diff --git a/cspell-config/cspell-zksync.txt b/cspell-config/cspell-zksync.txt index 61c5b71..d13800f 100644 --- a/cspell-config/cspell-zksync.txt +++ b/cspell-config/cspell-zksync.txt @@ -8,6 +8,7 @@ zkcast ZKEVM zkevm zkforge +zknode zkout zksolc zkstack diff --git a/package.json b/package.json index f8c4e11..fe0d0fa 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,8 @@ "lint:eslint": "eslint .", "lint:prettier": "prettier --check .", "fix:prettier": "prettier --write .", + "test:github": "playwright test", + "test:local": "playwright test --headed", "prepare": "node .husky/install.mjs", "postinstall": "nuxt prepare", "ci:check": "bun run lint:eslint && bun run lint:prettier && bun run lint:spelling && bun run lint:markdown", @@ -38,15 +40,20 @@ "devDependencies": { "@commitlint/cli": "^19.3.0", "@commitlint/config-conventional": "^19.2.2", + "@playwright/test": "^1.45.2", "@vue/test-utils": "^2.4.5", "cspell": "^8.7.0", "eslint": "^8.57.0", + "ethers": "^6.13.1", + "hardhat": "^2.22.6", "husky": "^9.0.11", "lint-staged": "^15.2.4", "markdownlint": "^0.34.0", "markdownlint-cli2": "^0.13.0", + "pm2": "^5.4.2", "prettier": "^3.2.5", "prettier-eslint": "^16.3.0", - "prettier-plugin-tailwindcss": "^0.5.14" + "prettier-plugin-tailwindcss": "^0.5.14", + "zksync-ethers": "^6.11.0" } } diff --git a/playwright.config.ts b/playwright.config.ts new file mode 100644 index 0000000..ca3ff95 --- /dev/null +++ b/playwright.config.ts @@ -0,0 +1,80 @@ +import { defineConfig, devices } from '@playwright/test'; + +/** + * Read environment variables from file. + * https://github.com/motdotla/dotenv + */ +// import dotenv from 'dotenv'; +// dotenv.config({ path: path.resolve(__dirname, '.env') }); + +/** + * See https://playwright.dev/docs/test-configuration. + */ +export default defineConfig({ + testDir: './tests', + /* Run tests in files in parallel */ + fullyParallel: true, + /* Fail the build on CI if you accidentally left test.only in the source code. */ + forbidOnly: !!process.env.CI, + /* Retry on CI only */ + retries: process.env.CI ? 1 : 0, + /* Opt out of parallel tests on CI. */ + workers: process.env.CI ? 1 : undefined, + /* Reporter to use. See https://playwright.dev/docs/test-reporters */ + reporter: 'html', + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + use: { + /* Base URL to use in actions like `await page.goto('/')`. */ + // baseURL: 'http://127.0.0.1:3000', + + /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ + trace: 'on-first-retry', + }, + timeout: 10 * 60 * 1000, + + /* Configure projects for major browsers */ + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + + // { + // name: 'firefox', + // use: { ...devices['Desktop Firefox'] }, + // }, + + // { + // name: 'webkit', + // use: { ...devices['Desktop Safari'] }, + // }, + + /* Test against mobile viewports. */ + // { + // name: 'Mobile Chrome', + // use: { ...devices['Pixel 5'] }, + // }, + // { + // name: 'Mobile Safari', + // use: { ...devices['iPhone 12'] }, + // }, + + /* Test against branded browsers. */ + // { + // name: 'Microsoft Edge', + // use: { ...devices['Desktop Edge'], channel: 'msedge' }, + // }, + // { + // name: 'Google Chrome', + // use: { ...devices['Desktop Chrome'], channel: 'chrome' }, + // }, + ], + + /* Run your local dev server before starting the tests */ + webServer: { + command: 'bun run dev', + url: 'http://localhost:3000', + reuseExistingServer: !process.env.CI, + timeout: 120 * 1000, + }, +}); diff --git a/tests/how-to-test-contracts.spec.ts b/tests/how-to-test-contracts.spec.ts new file mode 100644 index 0000000..94e2944 --- /dev/null +++ b/tests/how-to-test-contracts.spec.ts @@ -0,0 +1,16 @@ +import { test } from '@playwright/test'; +import { setupFolders, stopServers, startLocalServer } from './utils/setup'; +import { runTest } from './utils/runTest'; + +test('how-to-test-contracts-with-hardhat', async ({ page, context }) => { + // SETUP + await startLocalServer(page); + await context.grantPermissions(['clipboard-read', 'clipboard-write']); + await setupFolders('hardhat-test-example'); + + // TEST + await runTest(page, 'http://localhost:3000/tutorials/how-to-test-contracts'); + + // SHUT DOWN ANY RUNNING PROJECTS + stopServers(); +}); diff --git a/tests/utils/button.ts b/tests/utils/button.ts new file mode 100644 index 0000000..5aeafae --- /dev/null +++ b/tests/utils/button.ts @@ -0,0 +1,14 @@ +import { type Page } from '@playwright/test'; + +export async function clickButtonByText(page: Page, selector: string | RegExp) { + await page.locator('button').getByText(selector).click(); +} + +export async function clickCopyButton(page: Page, id: string) { + const buttonAriaLabel = 'Copy code to clipboard'; + const selector = `//*[@id='${id}']//following::button[@aria-label='${buttonAriaLabel}'][1]`; + const button = page.locator(selector); + await button.click(); + const rawText: string = await page.evaluate('navigator.clipboard.readText()'); + return rawText; +} diff --git a/tests/utils/files.ts b/tests/utils/files.ts new file mode 100644 index 0000000..c4be919 --- /dev/null +++ b/tests/utils/files.ts @@ -0,0 +1,68 @@ +import { writeFileSync, appendFileSync, readFileSync } from 'node:fs'; +import { clickCopyButton } from './button'; +import { expect, type Page } from '@playwright/test'; +import { EOL } from 'os'; + +export async function writeToFile(page: Page, buttonName: string, filePath: string) { + const content = await clickCopyButton(page, buttonName); + writeFileSync(filePath, `${content}\n\n`); +} + +export async function modifyFile( + page: Page, + buttonName: string, + filePath: string, + addSpacesBefore?: number, + addSpacesAfter?: number, + atLine?: number, + removeLines?: string, + useSetData?: string +) { + let contentText = useSetData; + if (!contentText) { + contentText = await clickCopyButton(page, buttonName); + } + contentText = contentText.trim().replace(/\u00A0/g, ' '); + const spacesBefore = addSpacesBefore ? '\n'.repeat(addSpacesBefore) : ''; + const spacesAfter = addSpacesAfter ? '\n'.repeat(addSpacesAfter) : ''; + if (!atLine && !removeLines) { + const finalContent = spacesBefore + contentText + spacesAfter; + appendFileSync(filePath, `${finalContent}\n\n`); + } else { + const lines = readFileSync(filePath, 'utf8').split('\n'); + if (removeLines) { + const removeLinesArray = JSON.parse(removeLines); + removeLinesArray.forEach((lineNumber: string) => { + lines[Number.parseInt(lineNumber) - 1] = '~~~REMOVE~~~'; + }); + } + if (atLine) { + lines.splice(atLine - 1, 0, contentText); + } + let finalContent = lines.filter((line: string) => line !== '~~~REMOVE~~~').join('\n'); + finalContent = spacesBefore + finalContent + spacesAfter; + writeFileSync(filePath, finalContent, 'utf8'); + } +} + +export async function compareToFile(page: Page, buttonName: string, pathName: string) { + const expected = await clickCopyButton(page, buttonName); + const actual = readFileSync(pathName, { encoding: 'utf8' }); + compareOutputs(expected, actual); +} + +export function compareOutputs(expected: string, actual: string) { + const split1 = expected.trim().split(EOL); + const split2 = actual.trim().split(EOL); + expect(split1.length === split2.length).toBeTruthy(); + split1.forEach((line, i) => { + const trimmedLineA = line.trim().replace(/\u00A0/g, ' '); + const trimmedLineB = split2[i].trim().replace(/\u00A0/g, ' '); + if (trimmedLineA !== trimmedLineB) { + console.log('DIFFERENT LINES'); + console.log('LINE A:', trimmedLineA); + console.log('LINE B:', trimmedLineB); + } + expect(trimmedLineA).toEqual(trimmedLineB); + }); +} diff --git a/tests/utils/getTestActions.ts b/tests/utils/getTestActions.ts new file mode 100644 index 0000000..aba344b --- /dev/null +++ b/tests/utils/getTestActions.ts @@ -0,0 +1,20 @@ +import { type Page, expect } from '@playwright/test'; + +export async function getTestActions(page: Page) { + const testActions = await page.$$eval('span[data-name]', (elements: Element[]) => { + return elements.map((el) => { + const dataAttributes: { + [key: string]: string; + } = {}; + const attributesArray = Array.from(el.attributes); + for (const attr of attributesArray) { + dataAttributes[attr.name] = attr.value; + } + dataAttributes['id'] = el.id; + return dataAttributes; + }); + }); + console.log('GOT TEST ACTIONS:', testActions); + expect(testActions.length).toBeGreaterThan(0); + return testActions; +} diff --git a/tests/utils/queries.ts b/tests/utils/queries.ts new file mode 100644 index 0000000..0b309b3 --- /dev/null +++ b/tests/utils/queries.ts @@ -0,0 +1,8 @@ +import { expect } from '@playwright/test'; +import { Provider } from 'zksync-ethers'; + +export async function checkIfBalanceIsZero(networkUrl: string, address: string) { + const provider = new Provider(networkUrl); + const balance = await provider.getBalance(address); + expect(balance).toBeGreaterThan(0); +} diff --git a/tests/utils/runCommand.ts b/tests/utils/runCommand.ts new file mode 100644 index 0000000..0f70ea5 --- /dev/null +++ b/tests/utils/runCommand.ts @@ -0,0 +1,79 @@ +import type { Page } from '@playwright/test'; +import { execSync } from 'node:child_process'; +import { clickCopyButton } from './button'; +import fs from 'fs'; +import { join } from 'path'; + +export async function runCommand( + page: Page, + buttonName: string, + goToFolder: string = 'tests-output', + projectFolder: string = 'hardhat-project', + preCommand?: string +) { + const copied = await clickCopyButton(page, buttonName); + console.log('COPIED', copied); + let command = copied; + const newHardhatProject = command.includes('npx hardhat init'); + + if (newHardhatProject) { + createNewHHProject(goToFolder, projectFolder); + } else { + if (preCommand) { + if (preCommand.includes('')) { + command = preCommand.replace('', copied); + } else { + command = preCommand + copied; + } + } + + if (goToFolder) { + command = `cd ${goToFolder} && ${command}`; + } + + run(command); + } +} + +function run(command: string) { + console.log('COMMAND', command); + + const commandOutput = execSync(command, { + encoding: 'utf-8', + }); + console.log('COMMAND OUTPUT', commandOutput); +} + +function createNewHHProject(goToFolder: string, projectFolder: string) { + const repoDir = 'hardhat'; + if (!fs.existsSync(join(goToFolder, repoDir))) { + const command = `cd ${goToFolder} && git clone https://github.com/NomicFoundation/hardhat.git`; + run(command); + } + const folderToCopy = 'packages/hardhat-core/sample-projects/typescript'; + + const sourceFolder = join(goToFolder, repoDir, folderToCopy); + const destinationFolder = join(goToFolder, projectFolder); + copyFolder(sourceFolder, destinationFolder); + const installCommand = `cd ${destinationFolder} && npm init -y && npm install --save-dev "hardhat@^2.22.6" "@nomicfoundation/hardhat-toolbox@^5.0.0" `; + run(installCommand); +} + +function copyFolder(source: string, destination: string) { + fs.mkdirSync(destination, { recursive: true }); + + const copyRecursive = (src: string, dest: string) => { + if (fs.statSync(src).isDirectory()) { + if (!fs.existsSync(dest)) { + fs.mkdirSync(dest); + } + fs.readdirSync(src).forEach((item) => { + copyRecursive(join(src, item), join(dest, item)); + }); + } else { + fs.copyFileSync(src, dest); + } + }; + + copyRecursive(source, destination); +} diff --git a/tests/utils/runTest.ts b/tests/utils/runTest.ts new file mode 100644 index 0000000..90ef725 --- /dev/null +++ b/tests/utils/runTest.ts @@ -0,0 +1,57 @@ +import type { Page } from '@playwright/test'; + +import { runCommand } from './runCommand'; +import { getTestActions } from './getTestActions'; +import { visit } from './visit'; +import { compareToFile, modifyFile, writeToFile } from './files'; +import { checkIfBalanceIsZero } from './queries'; + +export async function runTest(page: Page, url: string) { + await visit(page, url); + console.log('GETTING TEST ACTIONS'); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const steps: any[] = await getTestActions(page); + + console.log('STARTING TEST'); + for (const step of steps) { + console.log('STEP:', step); + await page.waitForTimeout(1000); + switch (step['data-name']) { + case 'runCommand': + await runCommand( + page, + step.id, + step['data-command-folder'], + step['data-project-folder'], + step['data-pre-command'] + ); + break; + case 'wait': + await page.waitForTimeout(Number.parseInt(step['data-timeout'])); + break; + case 'writeToFile': + await writeToFile(page, step.id, step['data-filepath']); + break; + case 'modifyFile': + await modifyFile( + page, + step.id, + step['data-filepath'], + Number.parseInt(step['data-add-spaces-before']), + step['data-add-spaces-after'], + Number.parseInt(step['data-at-line']), + step['data-remove-lines'], + step['data-use-set-data'] + ); + break; + case 'compareToFile': + await compareToFile(page, step.id, step['data-filepath']); + break; + case 'checkIfBalanceIsZero': + await checkIfBalanceIsZero(step['data-network-url'], step['data-address']); + break; + default: + console.log('STEP NOT FOUND:', step); + } + } +} diff --git a/tests/utils/setup.ts b/tests/utils/setup.ts new file mode 100644 index 0000000..3fc5d3a --- /dev/null +++ b/tests/utils/setup.ts @@ -0,0 +1,44 @@ +import { execSync } from 'child_process'; +import fs from 'fs'; +import type { Page } from '@playwright/test'; + +export async function startLocalServer(page: Page) { + console.log('STARTING...'); + await page.waitForTimeout(15000); + console.log('WAITED 15 SECONDS FOR LOCAL SERVER TO START'); +} + +export function stopServers() { + const isRunning = checkIfServersRunning(); + if (isRunning) { + console.log('STOPPING SERVERS'); + // stop & delete pm2 servers + const STOP_SERVERS = 'bun pm2 delete all'; + execSync(STOP_SERVERS, { + encoding: 'utf-8', + }); + console.log('DONE STOPPING SERVERS'); + } +} + +export function checkIfServersRunning() { + try { + const output = execSync('bun pm2 list --no-color').toString(); + return output.includes('online'); + } catch (error) { + console.error('Error checking PM2 servers:', error); + return false; + } +} + +export async function setupFolders(projectFolder: string) { + console.log('SETTING UP FOLDERS'); + fs.mkdirSync('tests-output', { recursive: true }); + const projectPath = `tests-output/${projectFolder}`; + if (fs.existsSync(projectPath)) { + await fs.promises.rm(projectPath, { + recursive: true, + force: true, + }); + } +} diff --git a/tests/utils/visit.ts b/tests/utils/visit.ts new file mode 100644 index 0000000..0363193 --- /dev/null +++ b/tests/utils/visit.ts @@ -0,0 +1,9 @@ +import type { Page } from '@playwright/test'; + +export async function visit(page: Page, pathname: string) { + console.log('GOING TO URL:', pathname); + await page.waitForTimeout(2000); + const pageFinal = await page.goto(`${pathname}`); + await page.waitForTimeout(2000); + return pageFinal; +}