Run e2e tests on PR check

This commit is contained in:
Sander Declerck 2025-07-30 16:54:57 +02:00
parent c966660a09
commit af53a8fbb8
No known key found for this signature in database
5 changed files with 61 additions and 16 deletions

View file

@ -48,18 +48,18 @@ jobs:
node-version: "24"
cache: "npm"
# - name: Install dependencies
# run: npm ci
- name: Install dependencies
run: npm ci
# - name: Run unit tests
# run: npm test
- name: Run unit tests
run: npm test
# - name: Run E2E tests
# run: npm run test:e2e
- name: Run E2E tests
run: npm run test:e2e
# - name: Clean up Docker resources
# if: always()
# run: |
# # Clean up any remaining containers and images
# docker ps -aq --filter "name=safe-chain-e2e-test" | xargs -r docker rm -f
# docker images -q safe-chain-e2e-test | xargs -r docker rmi -f
- name: Clean up Docker resources
if: always()
run: |
# Clean up any remaining containers and images
docker ps -aq --filter "name=safe-chain-e2e-test" | xargs -r docker rm -f
docker images -q safe-chain-e2e-test | xargs -r docker rmi -f

View file

@ -4,7 +4,6 @@
"scripts": {
"test": "node --test --experimental-test-module-mocks **/*.spec.js",
"test:watch": "node --test --watch --experimental-test-module-mocks **/*.spec.js",
"test:e2e": "node --test test/e2e/**/*.e2e.spec.js",
"lint": "eslint ."
},
"repository": {

32
test/e2e/package-lock.json generated Normal file
View file

@ -0,0 +1,32 @@
{
"name": "@aikidosec/safe-chain-e2e-tests",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@aikidosec/safe-chain-e2e-tests",
"version": "1.0.0",
"license": "AGPL-3.0-or-later",
"dependencies": {
"node-pty": "^1.0.0"
}
},
"node_modules/nan": {
"version": "2.23.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.23.0.tgz",
"integrity": "sha512-1UxuyYGdoQHcGg87Lkqm3FzefucTa0NAiOcuRsDmysep3c1LVCRK2krrUDafMWtjSG04htvAmvg96+SDknOmgQ==",
"license": "MIT"
},
"node_modules/node-pty": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/node-pty/-/node-pty-1.0.0.tgz",
"integrity": "sha512-wtBMWWS7dFZm/VgqElrTvtfMq4GzJ6+edFI0Y0zyzygUSZMgZdraDUMUhCIvkjhJjme15qWmbyJbtAx4ot4uZA==",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
"nan": "^2.17.0"
}
}
}
}

15
test/e2e/package.json Normal file
View file

@ -0,0 +1,15 @@
{
"name": "@aikidosec/safe-chain-e2e-tests",
"version": "1.0.0",
"description": "End-to-end tests for the Aikido Safe Chain",
"scripts": {
"test": "node --test **/*.spec.js"
},
"keywords": [],
"author": "Aikido Security",
"license": "AGPL-3.0-or-later",
"type": "module",
"dependencies": {
"node-pty": "^1.0.0"
}
}

View file

@ -7,7 +7,6 @@ import assert from "node:assert";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const projectRoot = path.resolve(__dirname, "../..");
describe("E2E: safe-chain setup command", () => {
const imageName = "safe-chain-e2e-test";
@ -17,8 +16,8 @@ describe("E2E: safe-chain setup command", () => {
before(async () => {
// Build the Docker image for the test environment
try {
execSync(`docker build -t ${imageName} -f test/e2e/Dockerfile .`, {
cwd: projectRoot,
execSync(`docker build -t ${imageName} -f Dockerfile ../../safe-chain`, {
cwd: __dirname,
stdio: "ignore",
});
} catch (error) {