{"id":24502767,"url":"https://github.com/sul-dlss/infrastructure-integration-test","last_synced_at":"2025-08-10T20:08:37.572Z","repository":{"id":37074022,"uuid":"228979870","full_name":"sul-dlss/infrastructure-integration-test","owner":"sul-dlss","description":"Integration Tests for the Stanford Digital Repository","archived":false,"fork":false,"pushed_at":"2025-07-26T00:01:18.000Z","size":49738,"stargazers_count":0,"open_issues_count":8,"forks_count":0,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-07-26T07:18:16.434Z","etag":null,"topics":["infrastructure","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sul-dlss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-12-19T05:13:12.000Z","updated_at":"2025-07-26T00:01:21.000Z","dependencies_parsed_at":"2023-09-28T22:39:30.355Z","dependency_job_id":"36be7200-3d1e-4455-9e9a-4ed6e7437436","html_url":"https://github.com/sul-dlss/infrastructure-integration-test","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sul-dlss/infrastructure-integration-test","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sul-dlss%2Finfrastructure-integration-test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sul-dlss%2Finfrastructure-integration-test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sul-dlss%2Finfrastructure-integration-test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sul-dlss%2Finfrastructure-integration-test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sul-dlss","download_url":"https://codeload.github.com/sul-dlss/infrastructure-integration-test/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sul-dlss%2Finfrastructure-integration-test/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269780617,"owners_count":24474686,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-10T02:00:08.965Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["infrastructure","ruby"],"created_at":"2025-01-21T23:13:51.919Z","updated_at":"2025-08-10T20:08:37.546Z","avatar_url":"https://github.com/sul-dlss.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![CircleCI](https://circleci.com/gh/sul-dlss/infrastructure-integration-test/tree/main.svg?style=svg)](https://circleci.com/gh/sul-dlss/infrastructure-integration-test/tree/main)\n\n# SDR Integration Tests\n\nA set of Capybara tests that drive a browser to do inter-system integration testing of SDR in the stage or QA environment.\n\n## Installation\n\nThe tests use Ruby 3.4.\n\nThe tests depend on having Firefox (default) or Chrome downloaded.\n\n1. `bundle install`\n\nSee the `Other Configuration` section below for\n- instructions on using Chrome\n- tweaking default selenium browser settings.\n\n## Prerequisites\n\n1. Connect to Stanford VPN (full-tunnel or split-tunnel)\n1. Ensure you have a valid, non-expired Kerberos ticket (use `klist` to verify, or run `kinit` to refresh)\n1. Set up SSH per [DLSS developer best practices](https://github.com/sul-dlss/DeveloperPlaybook/blob/main/best-practices/ssh_configuration.md)\n1. See the `Authentication Configuration` section below to set up necessary credentials:\n- dor_services_app credentials\n- etd credentials\n\n## Run Tests\n\nBy default, the integration tests run in the SDR stage environment:\n\n`bin/rspec`\n\nTo test in the SDR QA environment, run tests with the `SDR_ENV` environment variable, like so:\n\n```shell\nSDR_ENV=qa bin/rspec\n```\n\nNo matter which environment you run tests in, you may be prompted to type in your Stanford credentials and will then need to approve a multi-factor authentication push. If you tire of typing in your credentials, see the `Other Configuration` section below for help securely storing them.\n\nWhen running the virtual_object_creation test, you can create more than two constituents by running as follows:\n\n`SETTINGS__NUMBER_OF_CONSTITUENTS=11 bin/rspec`\n\n## Add New Tests\n\nPlease use the integration-testing APO and collection when feasible:\n\n* APO: druid:qc410yz8746 (available as `Settings.default_apo`)\n* Collection: druid:bc778pm9866 (available as `Settings.default_collection`)\n\n## Authentication Configuration\n\n### Allow Credential Delegation\n\nConfigure your SSH client to allow delegation of Kerberos credentials (required for any tests that use `scp`), by adding the following to `~/.ssh/config` or wherever your system stores SSH configuration:\n\n```\n# Add to appropriate place, such as:\nHost *.stanford.edu\n  GSSAPIDelegateCredentials yes\n```\n\n### Stage Environment\n\nFor the stage environment, copy `config/settings.yml` to `config/settings/stage.local.yml`.  You will be adding stage environment specific settings here.\n\n**NOTE**: `config/settings/stage.local.yml` is ignored by git and should remain so. Please do not add this file to version control.\n\n### QA Environment\n\nFor the QA environment, copy `config/settings.yml` to `config/settings/qa.local.yml`.  You will be adding stage environment specific settings here.\n\n**NOTE**: `config/settings/qa.local.yml` is ignored by git and should remain so. Please do not add this file to version control.\n\n### Set Dor-Services-App Credentials\n\nSome integration tests use the `dor-services-client` to interact with the `dor-services-app`. In order to successfully use the dor-services-client, you must first have a token. To generate dor-services-app tokens, see the [dor-services-app README](https://github.com/sul-dlss/dor-services-app#authentication). You'll need to generate separate tokens for each dor-services-app environment (stage, qa), and add them to `config/settings/stage.local.yml` and `config/settings/qa.local.yml`.  See `config/settings.yml` for the expected YAML syntax.\n\n### Set ETD Credentials\n\nIn order to run `spec/features/etd_creation_spec.rb`, you need the ETD application's backdoor username and password for HTTP POST requests. You can get these from [Vault](https://consul.stanford.edu/display/systeam/Vault+for+Developers):\n\n```shell\nvault kv get puppet/application/hydra_etd/qa/username\nvault kv get puppet/application/hydra_etd/qa/password\n```\n\nor\n\n```shell\nvault kv get puppet/application/hydra_etd/stage/username\nvault kv get puppet/application/hydra_etd/stage/password\n```\n\nAdd them to `config/settings/stage.local.yml` and `config/settings/qa.local.yml` respectively.  See `config/settings.yml` for the expected YAML syntax.\n\n### Set Goobi Credentials\n\nIn order to run `spec/features/goobi_accessioning_spec.rb`, you need the Goobi application's integration username and password to login to the UI. Get these values from [Vault](https://consul.stanford.edu/display/systeam/Vault+for+Developers) and add them to `config/settings/stage.local.yml`.\n\n```shell\nvault kv get puppet/application/goobi/stage/username\nvault kv get puppet/application/goobi/stage/password\n```\n\nThis test cannot be run in QA, since there is no Goobi QA. So this configuration is only relevant for stage. See `config/settings.yml` for the expected YAML syntax.\n\n### Problems with Authentication?\n\nYou may want to lower the timeout value of `Settings.timeouts.post_authentication_text` in `config/settings.local.yml`.\n\n## Other Configuration\n\n### Globus\n\nThe H3 Globus integration test uses your Globus account to upload files.  You may need to log into Globus at least once to have this ready to go.  During the test, you will also get a second auth request coming from the Globus login, which you need to accept.  Your H3 Globus endpoint (\"/uploads/SUNETID/new\") should also be empty when you start the test.  This should be true unless a previous integration run failed mid-way or you are actually in the middle of using Globus in qa/stage to accession content.  If necessary, just delete the \"new\" folder or the files within it manually in the Globus UI and then try again.\n\n### Set SUNet Credentials\n\nIf you tire of typing in your SUNet credentials over and over, you may add them to `config/settings.local.yml` (ignored by git). Copy the dummy values from `config/settings.yml` to get started. Do *not* add this file to version control, if you do this!\n\n### Use Chrome Browser\n\n1. `bundle install`\n1. Set `browser.driver` to `chrome` in `config/settings.local.yml`\n\n### Change Browser Window Size\n\nIf you find you need to modify the default window size for either browser---*e.g.*, because the size is too small and causing responsive elements to disappear behind clickable menus---copy the default settings for `browser.height` and `browser.width` from `config/settings.yml` to `config/settings.local.yml` and modify them to meet your needs.\n\n### Increase Timeout Values\n\nIf you are experiencing timeout errors when running tests, you may override the default timeout values by adding `timeouts.capybara`, `timeouts.bulk_action`, and/or `timeouts.workflow` in `config/settings.local.yml` depending on where you see timeouts.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsul-dlss%2Finfrastructure-integration-test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsul-dlss%2Finfrastructure-integration-test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsul-dlss%2Finfrastructure-integration-test/lists"}