From 20bba0b886b4b448a2b1ed7efc1a1f811995c222 Mon Sep 17 00:00:00 2001 From: juancarmore Date: Thu, 15 May 2025 21:54:41 +0200 Subject: [PATCH] test: add script to launch integration tests for Meetings API and include them in backend-integration-test workflow --- .../workflows/backend-integration-test.yaml | 58 ++++++++++++++++++- backend/package.json | 1 + 2 files changed, 58 insertions(+), 1 deletion(-) diff --git a/.github/workflows/backend-integration-test.yaml b/.github/workflows/backend-integration-test.yaml index 80dde25..12a645f 100644 --- a/.github/workflows/backend-integration-test.yaml +++ b/.github/workflows/backend-integration-test.yaml @@ -339,4 +339,60 @@ jobs: require_tests: true - name: Clean up if: always() - uses: ./.github/actions/cleanup \ No newline at end of file + uses: ./.github/actions/cleanup + + test-meetings: + name: Meetings 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:integration-meetings + 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 diff --git a/backend/package.json b/backend/package.json index aae6828..b5fdb50 100644 --- a/backend/package.json +++ b/backend/package.json @@ -43,6 +43,7 @@ "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:integration-meetings": "node --experimental-vm-modules node_modules/.bin/jest --runInBand --forceExit --testPathPattern \"tests/integration/api/meetings\" --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}'"