Add feature specs for Maven virtual registries
🔭 Context
In Maven virtual registry MVC (API only interactions) (&14137 - closed), we're working towards building the Maven virtual registry.
Given the high velocity of the feature implementation, we took some shortcuts. One of them was to not implement feature specs right aways.
At the time of this writing, the entire implementation is done and we're working towards improvements and removing the shortcuts. They are listed in Maven virtual registry: technical debts (#480360 - closed).
This MR takes care of the features spec.
🤔 What does this MR do and why?
- Add feature specs for Maven virtual registries. We decided to limit the amount of examples to the main scenarios:
- Download a file that is not cached.
- Download a file that is cached.
- With a stale cache.
- With a stale cache with a different ETag.
Downloading a file through the Maven virtual registry involves an orchestration with Workhorse. Thus, all these scenarios will assert that interaction.
Other scenarios, like errors, are already covered in the requests spec.
📚 References
Please include cross links to any resources that are relevant to this MR. This will give reviewers and future readers helpful context to give an efficient review of the changes introduced.
🏎️ MR acceptance checklist
Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
🦄 Screenshots or screen recordings
No UI changes
⚙️ How to set up and validate locally
$ bundle exec rspec 'spec/features/api/virtual_registries/packages/maven_spec.rb'