Refactor topology spec
What does this MR do?
Address the discussion from !40971 (merged):
-
@mkaeppler started a discussion: (+3 comments) I don't think you need any of these tests; you're testing the same behavior in multiple different places.
Test boundaries should be established around interface contracts:
UsageData
has an interface contract with the Prometheus client API (and helpers) throughwith_prometheus_client
. This is what should be stubbed here, not the underlying mechanics of Prometheus.You're just making your own life unncessarily difficult here :-) and it also creates test coupling, which is not good.
This MR stub with_prometheus_client
in topology_spec.rb
. So it avoids duplicating the tested behavior of with_prometheus_client
in spec/lib/gitlab/utils/usage_data_spec.rb
.
Conformity
-
Changelog entry -
Documentation (if required) -
Code review guidelines -
Merge request performance guidelines -
Style guides -
Database guides -
Separation of EE specific content
Availability and Testing
-
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process. -
Tested in all supported browsers -
Informed Infrastructure department of a default or new setting change, if applicable per definition of done
Security
If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:
-
Label as security and @ mention @gitlab-com/gl-security/appsec
-
The MR includes necessary changes to maintain consistency between UI, API, email, or other methods -
Security reports checked/validated by a reviewer from the AppSec team
Closes #249136 (closed)