SFR-2316: Run tests against backend API locally #400
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Playwright Tests for Digital Research Books | |
on: | |
pull_request: | |
jobs: | |
tests: | |
name: Run Tests | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version-file: ".nvmrc" | |
- name: Install Test Dependencies | |
run: npm i @cucumber/[email protected] @playwright/[email protected] | |
- name: Install Playwright | |
run: npx playwright install --with-deps | |
- name: Build app | |
run: NODE_ENV=test npm run build | |
- name: Start the app | |
run: | | |
NODE_ENV=test npm start & | |
sleep 5 | |
shell: bash | |
- name: Checkout another repository | |
uses: actions/checkout@v3 | |
with: | |
repository: NYPL/drb-etl-pipeline | |
path: drb-etl-pipeline | |
- name: Start the API | |
working-directory: ./drb-etl-pipeline | |
env: | |
POSTGRES_USER: ${{ secrets.POSTGRES_USER }} | |
POSTGRES_PSWD: ${{ secrets.POSTGRES_PSWD }} | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
run: | | |
pip install -r requirements.txt | |
docker compose up redis & | |
sleep 10 | |
python main.py -p APIProcess -e frontend-ci & | |
sleep 10 | |
- name: Run your tests | |
run: npm run playwright | |
- name: Set the world parameters as an env var | |
# WORLD_PARAMETERS set here will override anything set in cucumber.json | |
run: | | |
echo "WORLD_PARAMETERS={\"headless\": true}" >> $GITHUB_ENV | |
- name: Run Cucumber tests | |
run: npm run cucumber -- playwright/features --world-parameters '${{ env.WORLD_PARAMETERS }}' | |
env: | |
CATALOG_USERNAME: ${{ secrets.CATALOG_USERNAME }} | |
CATALOG_USER_PIN: ${{ secrets.CATALOG_USER_PIN }} | |
CUCUMBER_PUBLISH_TOKEN: ${{ secrets.CUCUMBER_PUBLISH_TOKEN }} | |
CUCUMBER_PUBLISH_ENABLED: true | |
- name: Slack Notification | |
if: ${{ always() }} | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_CHANNEL: test_reports | |
SLACK_MESSAGE: https://reports.cucumber.io/report-collections/01dbd6e8-653b-4597-b901-6caf2e653b07 | |
SLACK_TITLE: DRB Cucumber/Playwright Test Results | |
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} | |
SLACK_USERNAME: nyplorgBot |