Skip to content

Commit

Permalink
chore: add e2e test
Browse files Browse the repository at this point in the history
  • Loading branch information
MexicanAce committed Aug 10, 2023
1 parent 3539ad0 commit 1500dc8
Show file tree
Hide file tree
Showing 11 changed files with 9,330 additions and 1 deletion.
20 changes: 20 additions & 0 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Testing era_test_node using e2e
on:
workflow_call:

jobs:
e2e:
runs-on: ubuntu-latest
name: e2e
steps:
- name: Launch tests
id: launch
run: |
echo "Run tests"
make test-e2e
- name: Publish Test Results
uses: dorny/test-reporter@v1
if: always() # This ensures the step runs even if the prior step (tests) fail
with:
path: .e2e-tests/test-results.xml
6 changes: 5 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,14 @@ lint:
test:
cargo test

# Run e2e tests against running era_test_node
test-e2e:
./scripts/execute-e2e-tests.sh

# Build everything
all: build-contracts rust-build

# Clean everything
clean: clean-contracts

.PHONY: build-contracts clean-contracts rebuild-contracts rust-build lint test all clean
.PHONY: build-contracts clean-contracts rebuild-contracts rust-build lint test test-e2e all clean
117 changes: 117 additions & 0 deletions e2e-tests/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
# nmv 08-08-2023
# Ignore test results from mocha
test-results.xml

# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.vscode

# hardhat artifacts
artifacts
cache

# zksync artifacts
artifacts-zk
cache-zk

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# TypeScript v1 declaration files
typings/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env
.env.test

# parcel-bundler cache (https://parceljs.org/)
.cache

# Next.js build output
.next

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and *not* Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# vuepress build output
.vuepress/dist

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port
14 changes: 14 additions & 0 deletions e2e-tests/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Era Test Node E2E Tests project

This project is used for running e2e tests against `era_test_node`

## Project structure

- `/contracts`: smart contracts.
- `/test`: test files
- `hardhat.config.ts`: configuration file.

## Commands

- `yarn hardhat compile` will compile the contracts.
- `yarn test`: run tests.
26 changes: 26 additions & 0 deletions e2e-tests/contracts/Greeter.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.8.0;

import "hardhat/console.sol";

contract Greeter {
string private greeting;

constructor(string memory _greeting) {
greeting = _greeting;
}

function greet() public view returns (string memory) {
return greeting;
}

function setGreeting(string memory _greeting) public {
console.log("setGreeting called");
console.log(_greeting);
require(
keccak256(abi.encodePacked((_greeting))) != keccak256(abi.encodePacked(("test"))),
"Received a test value"
);
greeting = _greeting;
}
}
29 changes: 29 additions & 0 deletions e2e-tests/hardhat.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { HardhatUserConfig } from "hardhat/config";

import "@matterlabs/hardhat-zksync-deploy";
import "@matterlabs/hardhat-zksync-solc";
import "@matterlabs/hardhat-zksync-verify";

const config: HardhatUserConfig = {
zksolc: {
version: "latest",
settings: {},
},
defaultNetwork: "zkSyncTestnet",
networks: {
zkSyncTestnet: {
url: "http://localhost:8011",
// ethNetwork isn't necessary, but leaving for posterity
ethNetwork: "http://localhost:8545",
zksync: true,
}
},
solidity: {
version: "0.8.17",
},
mocha: {
reporter: "mocha-junit-reporter"
}
};

export default config;
Loading

0 comments on commit 1500dc8

Please sign in to comment.