Improve invalid feature category message for db docs specs
What does this MR do and why?
This MR improves the readability of spec failures in case of invalid feature categories for spec/db/docs_spec.rb
.
The message now shows which feature categories were invalid.
Follow-up of !107237 (merged).
Refs !109338 (merged).
Screenshots
Before
Example: https://gitlab.com/gitlab-org/gitlab/-/jobs/3634626635 (from !109338 (merged)).
Failures:
1) Tables documentation for each object has a valid feature category
Failure/Error:
expect(objects_with_invalid_feature_category).to be_empty, object_metadata_errors(
'Table metadata files with an invalid feature category',
:error,
objects_with_invalid_feature_category
)
Table metadata files with an invalid feature category:
db/docs/achievements.yml
db/docs/emails.yml
db/docs/events.yml
db/docs/ghost_user_migrations.yml
db/docs/push_event_payloads.yml
db/docs/routes.yml
db/docs/user_achievements.yml
db/docs/user_custom_attributes.yml
db/docs/user_details.yml
db/docs/user_follow_users.yml
db/docs/user_preferences.yml
db/docs/user_statuses.yml
db/docs/users.yml
Shared Example Group: "validate dictionary" called from ./spec/db/docs_spec.rb:177
# ./spec/db/docs_spec.rb:71:in `block (3 levels) in <top (required)>'
# ./spec/spec_helper.rb:415:in `block (3 levels) in <top (required)>'
# ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'
# ./spec/spec_helper.rb:407:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:403:in `block (3 levels) in <top (required)>'
# ./lib/gitlab/application_context.rb:59:in `with_raw_context'
# ./spec/spec_helper.rb:403:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:239:in `block (2 levels) in <top (required)>'
# ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <main>'
# ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <main>'
# ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
# ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <main>'
Finished in 6.06 seconds (files took 8.31 seconds to load)
1 example, 1 failure
Failed examples:
rspec ./spec/db/docs_spec.rb[2:1:3] # Tables documentation for each object has a valid feature category
After
Failures:
1) Tables documentation for each object has a valid feature category
Failure/Error:
expect(objects_with_invalid_feature_category).to be_empty, object_metadata_errors(
message,
:invalid_feature_category,
objects_with_invalid_feature_category
)
Please use a category from https://about.gitlab.com/handbook/product/categories/#categories-a-z
Table metadata files with an invalid feature category:
db/docs/achievements.yml
invalid feature category: users
db/docs/emails.yml
invalid feature category: users
db/docs/events.yml
invalid feature category: users
db/docs/ghost_user_migrations.yml
invalid feature category: users
db/docs/push_event_payloads.yml
invalid feature category: users
db/docs/routes.yml
invalid feature category: users
db/docs/user_achievements.yml
invalid feature category: users
db/docs/user_custom_attributes.yml
invalid feature category: users
db/docs/user_details.yml
invalid feature category: users
db/docs/user_follow_users.yml
invalid feature category: users
db/docs/user_preferences.yml
invalid feature category: users
db/docs/user_statuses.yml
invalid feature category: users
db/docs/users.yml
invalid feature category: users
Shared Example Group: "validate dictionary" called from ./spec/db/docs_spec.rb:186
# ./spec/db/docs_spec.rb:83:in `block (3 levels) in <top (required)>'
# ./spec/spec_helper.rb:415:in `block (3 levels) in <top (required)>'
# ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'
# ./spec/spec_helper.rb:407:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:403:in `block (3 levels) in <top (required)>'
# ./lib/gitlab/application_context.rb:59:in `with_raw_context'
# ./spec/spec_helper.rb:403:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:239:in `block (2 levels) in <top (required)>'
# ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <main>'
# ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <main>'
# ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
# ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <main>'
Finished in 6.66 seconds (files took 8.22 seconds to load)
1 example, 1 failure
Failed examples:
rspec ./spec/db/docs_spec.rb[2:1:3] # Tables documentation for each object has a valid feature category
How to set up and validate locally
Refs !109338 (merged)
bin/rspec ./spec/db/docs_spec.rb -e "Tables documentation for each object has a valid feature category"
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Edited by Peter Leitzen