Skip to content

CDLUC3/mrt-integ-tests

Folders and files

NameName
Last commit message
Last commit date

Latest commit

19fe899 · Feb 20, 2025
Jun 20, 2024
Aug 23, 2024
Nov 22, 2024
Nov 19, 2024
Jun 4, 2020
Jan 19, 2024
Aug 28, 2024
Aug 29, 2024
Aug 29, 2024
Nov 22, 2024
Feb 20, 2025
Aug 26, 2024
Sep 23, 2024
Aug 27, 2024
Aug 29, 2024
Jun 8, 2020

Repository files navigation

Merritt Integration Test Driver

This library is part of the Merritt Preservation System.

Loading
%%{init: {'theme': 'neutral', 'securityLevel': 'loose', 'themeVariables': {'fontFamily': 'arial'}}}%%
graph TD
  CAPY([Capybara Test Driver Container])
  CHROME([Headless Chrome Container])
  UI(Merritt UI)
  click UI href "https://github.com/CDLUC3/mrt-dashboard" "source code"
  STORE(Storage)
  click STORE href "https://github.com/CDLUC3/mrt-store" "source code"
  CONFIG[[Test Config Yaml]]
  DOCK(Docker Compose)
  click DOCK href "https://github.com/CDLUC3/merritt-docker" "source code"

  subgraph flowchart
    DOCK -.-> |docker run| CAPY
    DOCK -.-> |docker run| CHROME
    CONFIG --> CAPY
    CAPY --> CHROME
    CHROME --> |http| UI
    CHROME --> |http| STORE
  end
  
  style DOCK fill:cyan
  style CHROME fill:cyan
  style CAPY stroke:red,stroke-width:4px

Setup

These tests can be run in the follow manner

  • from AWS Code Build - Internal Documentation
  • using docker containers to run Ruby/Capybara and Headless Chrome
  • run locally using a desktop installation of Ruby and Chrome

Code Build Setup

  • This is the recommended approach for the Merritt Team. See the internal documentation link above

Local Setup

  • Install ruby 3.0
  • Chrome installation is required
  • bundle install

Local Test Execution

  • rspec spec

Running outside of docker

  • Comment out CHROME_URL: http://chrome:4444/wd/hub
  • bundle install
  • INTEG_TEST_ENV=... bundle exec rspec

Docker Setup

docker-compose build
docker-compose up -d chrome

Docker Test Execution

Domain Scenario Command
Production Patching: Simple Ingest (queue unpaused) docker-compose run --rm -e INTEG_TEST_ENV=production mrt-integ-tests
Production Patching: Retrieval only (queue paused) docker-compose run --rm -e INTEG_TEST_ENV=production -e PREFIX=2022_03_14_1712 mrt-integ-tests
Production No Ingest docker-compose run --rm -e INTEG_TEST_ENV=production -e INGEST_FILES=none mrt-integ-tests
Production Ingest Full Encoding Tests docker-compose run --rm -e INTEG_TEST_ENV=production -e INGEST_FILES=encoding-tests mrt-integ-tests
Production Preview Url docker-compose run --rm -e INTEG_TEST_ENV=production -e PREFIX=2022_03_14_1712 -e PREVIEW_URL='https://...' mrt-integ-tests
Stage Patching: Simple Ingest (queue unpaused) docker-compose run --rm -e INTEG_TEST_ENV=stage mrt-integ-tests
Stage Patching: Retrieval only (queue paused) docker-compose run --rm -e INTEG_TEST_ENV=stage -e PREFIX=2022_03_16_1520 mrt-integ-tests
Stage No Ingest docker-compose run --rm -e INTEG_TEST_ENV=stage -e INGEST_FILES=none mrt-integ-tests
Stage Ingest Full Encoding Tests docker-compose run --rm -e INTEG_TEST_ENV=stage -e INGEST_FILES=encoding-tests mrt-integ-tests
Stage Preview Url docker-compose run --rm -e INTEG_TEST_ENV=stage -e PREFIX=2022_03_16_1520 -e PREVIEW_URL='https://...' mrt-integ-tests
Development Simple Ingest docker-compose run --rm -e INTEG_TEST_ENV=development mrt-integ-tests
Development No Ingest docker-compose run --rm -e INTEG_TEST_ENV=development -e INGEST_FILES=none mrt-integ-tests
Development Preview Url docker-compose run --rm -e INTEG_TEST_ENV=development -e INGEST_FILES=none -e PREVIEW_URL='https://...' mrt-integ-tests

Cleanup

docker-compose down