Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add e2e test #35

Merged
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
1500dc8
chore: add e2e test
MexicanAce Aug 10, 2023
5033132
Add missing workflow logic
MexicanAce Aug 11, 2023
f9a53df
Merge branch 'main' into nicolasvillanueva-devrl-231-add-e2e-test-to-…
MexicanAce Aug 14, 2023
0d2420f
Remove use of package lock and replace with yarn lock. Remove unused …
MexicanAce Aug 14, 2023
dd01bef
Update build workflow to generate artifact. Use said artifact in e2e …
MexicanAce Aug 14, 2023
223695b
Update e2e tests to only run in ubuntu-latest for now.
MexicanAce Aug 14, 2023
dd62517
Add vscode extension recommendation for working with github actions. …
MexicanAce Aug 14, 2023
8e17e58
Debug binary extraction
MexicanAce Aug 14, 2023
2ffb028
Fix linting error. Reference correct binary for e2e tests
MexicanAce Aug 14, 2023
128cc90
Debug binary
MexicanAce Aug 14, 2023
b8d8183
Change artifact directory
MexicanAce Aug 14, 2023
c674e9c
Add multireporter to debug output issues of the tests.
MexicanAce Aug 14, 2023
09e1664
More debugging
MexicanAce Aug 14, 2023
a7bcbce
More fixes
MexicanAce Aug 14, 2023
d18bfdc
More debugging
MexicanAce Aug 14, 2023
2ed1d71
Upate something
MexicanAce Aug 14, 2023
8bb8e0d
Revert random hardhat config change, but update the provider endpoint…
MexicanAce Aug 14, 2023
cd9f87f
More debugging
MexicanAce Aug 14, 2023
186293d
Capture and print output of era_test_node running in background
MexicanAce Aug 14, 2023
29c8246
More debugging
MexicanAce Aug 14, 2023
f72a003
more debugging
MexicanAce Aug 14, 2023
f4dc46b
fix
MexicanAce Aug 14, 2023
6f82b63
fix2
MexicanAce Aug 14, 2023
b44ff80
fix3
MexicanAce Aug 14, 2023
1b1fb22
DO NOT MERGE. Failing test for verification evidence.
MexicanAce Aug 14, 2023
16b6d64
Fix test
MexicanAce Aug 14, 2023
24f86fe
Fix reporting for failed tests
MexicanAce Aug 14, 2023
3a3c063
debug test reports on failure
MexicanAce Aug 14, 2023
ecd0af6
Try ignoring result of make command for failing tests
MexicanAce Aug 15, 2023
9d3aed1
Remove artifact check within test results step
MexicanAce Aug 15, 2023
4160a64
Test fail-on-error
MexicanAce Aug 15, 2023
0577507
test failing test
MexicanAce Aug 15, 2023
18fbcb1
Return back successful e2e tests
MexicanAce Aug 15, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
MexicanAce marked this conversation as resolved.
Show resolved Hide resolved
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";
MexicanAce marked this conversation as resolved.
Show resolved Hide resolved

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
Loading