From 34312e16d3d89e2253c55cdb070aff1aa53ac620 Mon Sep 17 00:00:00 2001 From: juancarmore Date: Tue, 13 May 2025 14:37:56 +0200 Subject: [PATCH] ci: add integration tests for participants API and update workflow --- .../workflows/backend-integration-test.yaml | 56 +++++++++++++++++++ backend/package.json | 1 + 2 files changed, 57 insertions(+) diff --git a/.github/workflows/backend-integration-test.yaml b/.github/workflows/backend-integration-test.yaml index 5e4b1f0..a4868ba 100644 --- a/.github/workflows/backend-integration-test.yaml +++ b/.github/workflows/backend-integration-test.yaml @@ -281,6 +281,62 @@ jobs: report_paths: '**/reports/junit.xml' fail_on_failure: true require_tests: true + - name: Clean up + if: always() + uses: ./.github/actions/cleanup + + test-participants: + name: Participants API Tests + runs-on: ov-actions-runner + steps: + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + - name: Setup yarn # Needed for the redlock package + run: npm install -g yarn + - name: Install wait-on + run: npm install -g wait-on + - name: Install LK CLI + run: curl -sSL https://get.livekit.io/cli | bash + - name: Checkout OpenVidu Meet + uses: actions/checkout@v4 + - name: Checkout OpenVidu Local Deployment + uses: actions/checkout@v4 + with: + repository: OpenVidu/openvidu-local-deployment + ref: development + path: openvidu-local-deployment + - name: Configure Local Deployment + shell: bash + run: | + cd openvidu-local-deployment/community + ./configure_lan_private_ip_linux.sh + docker compose up -d + + - name: Wait for OpenVidu Local Deployment to Start + run: wait-on --timeout 60000 http://localhost:7880 + - name: Setup OpenVidu Meet + run: | + ./prepare.sh + cd backend + npm install + npm run start:prod & + - name: Wait for OpenVidu Meet to Start + run: wait-on --timeout 30000 http://localhost:6080/meet/health + - name: Run tests + run: | + cd backend + npm run test:participants + env: + JEST_JUNIT_OUTPUT_DIR: './reports/' + - name: Publish Test Report + uses: mikepenz/action-junit-report@v4 + if: always() + with: + report_paths: '**/reports/junit.xml' + fail_on_failure: true + require_tests: true - name: Clean up if: always() uses: ./.github/actions/cleanup \ No newline at end of file diff --git a/backend/package.json b/backend/package.json index da7cc04..6b8d5a4 100644 --- a/backend/package.json +++ b/backend/package.json @@ -42,6 +42,7 @@ "test:integration-webhooks": "node --experimental-vm-modules node_modules/.bin/jest --runInBand --forceExit --testPathPattern \"tests/integration/webhooks\" --ci --reporters=default --reporters=jest-junit", "test:integration-security": "node --experimental-vm-modules node_modules/.bin/jest --runInBand --forceExit --testPathPattern \"tests/integration/api/security\" --ci --reporters=default --reporters=jest-junit", "test:integration-global-preferences": "node --experimental-vm-modules node_modules/.bin/jest --runInBand --forceExit --testPathPattern \"tests/integration/api/global-preferences\" --ci --reporters=default --reporters=jest-junit", + "test:integration-participants": "node --experimental-vm-modules node_modules/.bin/jest --runInBand --forceExit --testPathPattern \"tests/integration/api/participants\" --ci --reporters=default --reporters=jest-junit", "test:unit": "node --experimental-vm-modules node_modules/.bin/jest --runInBand --forceExit --testPathPattern \"tests/unit\" --ci --reporters=default --reporters=jest-junit", "lint:fix": "eslint src --fix", "format:code": "prettier --ignore-path .gitignore --write '**/*.{ts,js,json,md}'"