-
Notifications
You must be signed in to change notification settings - Fork 445
Testing with VCR
In our CI environment, we don't have the backend running and therefore we are using VCR to replay previous recorded HTTP sessions between frontend and backend.
We have a configuration global named global_write_through
which controls if data will be sent to backend or not. This configuration is controlled on spec/support/vcr.rb
. To be able to generate or refresh an already generated cassette, you will need to enable the global_write_through
before to run a spec. Important do not run the whole suite with global_write_through
enabled. Instead run just the specific spec needing a new cassette.
In the process, of developing tests with cassettes, the backend doesn't get flushed between test runs. If cassettes are recorded without flushing the backend, they will contain responses from a backend filled up with previous data.
So, for example, when in your test you use a factory to create a package package1
with a file and run the test, a package with a file is created in the backend. If you modify the test to create a simple package package1
without a file, and run the test, the backend will keep the file attached to this package. And the rest of the code of your test will work as it was the first run, when it probably shouldn't.
To assure this doesn't happen when creating the cassettes, just delete the docker backend container, and wake up it again. This can be done with the following commands:
docker-compose rm -s -f backend
docker-compose up -d backend
- Development Environment Overview
- Development Environment Tips & Tricks
- Spec-Tips
- Code Style
- Rubocop
- Testing with VCR
- Authentication
- Authorization
- Autocomplete
- BS Requests
- Events
- ProjectLog
- Notifications
- Feature Toggles
- Build Results
- Attrib classes
- Flags
- The BackendPackage Cache
- Maintenance classes
- Cloud uploader
- Delayed Jobs
- Staging Workflow
- StatusHistory
- OBS API
- Owner Search
- Search
- Links
- Distributions
- Repository
- Data Migrations
- next_rails
- Ruby Update
- Rails Profiling
- Installing a local LDAP-server
- Remote Pairing Setup Guide
- Factory Dashboard
- osc
- Setup an OBS Development Environment on macOS
- Run OpenQA smoketest locally
- Responsive Guidelines
- Importing database dumps
- Problem Statement & Solution
- Kickoff New Stuff
- New Swagger API doc
- Documentation and Communication
- GitHub Actions
- How to Introduce Software Design Patterns
- Query Objects
- Services
- View Components
- RFC: Core Components
- RFC: Decorator Pattern
- RFC: Backend models