Improve performance of ee/spec/services/search/snippet_service_spec.rb
What does this MR do?
This MR improves the ee/spec/services/search/snippet_service_spec.rb
spec. In local, the time went from 2 mins and 48 seconds to 1 min and 55 second. Therefore, the improvement was 53 seconds.
Refs #228671 (closed)
Screenshots
Before
Top 10 slowest examples (21.56 seconds, 12.8% of total time):
Search::SnippetService behaves like EE search service shared examples #execute advanced syntax queries for all scopes with query "display bug" and scope snippet_titles allows advanced query
3.17 seconds ./ee/spec/support/shared_examples/services/search_service_shared_examples.rb:81
Search::SnippetService#execute visibility project snippet snippet_level: :internal, project_level: :public, feature_access_level: :private, membership: :guest, expected_count: 1 respects visibility
2.38 seconds ./ee/spec/services/search/snippet_service_spec.rb:60
Search::SnippetService#execute visibility project snippet snippet_level: :private, project_level: :private, feature_access_level: :private, membership: :guest, expected_count: 1 respects visibility
2.26 seconds ./ee/spec/services/search/snippet_service_spec.rb:60
Search::SnippetService#execute visibility project snippet snippet_level: :internal, project_level: :public, feature_access_level: :private, membership: :admin, expected_count: 1 respects visibility
2.16 seconds ./ee/spec/services/search/snippet_service_spec.rb:60
Search::SnippetService#execute visibility project snippet snippet_level: :public, project_level: :private, feature_access_level: :private, membership: :guest, expected_count: 1 respects visibility
2.14 seconds ./ee/spec/services/search/snippet_service_spec.rb:60
Search::SnippetService#execute visibility project snippet snippet_level: :public, project_level: :public, feature_access_level: :enabled, membership: :admin, expected_count: 1 respects visibility
2.06 seconds ./ee/spec/services/search/snippet_service_spec.rb:60
Search::SnippetService#execute visibility project snippet snippet_level: :public, project_level: :public, feature_access_level: :enabled, membership: :guest, expected_count: 1 respects visibility
1.93 seconds ./ee/spec/services/search/snippet_service_spec.rb:60
Search::SnippetService#execute visibility project snippet snippet_level: :internal, project_level: :public, feature_access_level: :private, membership: :reporter, expected_count: 1 respects visibility
1.9 seconds ./ee/spec/services/search/snippet_service_spec.rb:60
Search::SnippetService#execute visibility project snippet snippet_level: :public, project_level: :private, feature_access_level: :disabled, membership: :non_member, expected_count: 0 respects visibility
1.82 seconds ./ee/spec/services/search/snippet_service_spec.rb:60
Search::SnippetService#execute visibility project snippet snippet_level: :public, project_level: :public, feature_access_level: :disabled, membership: :non_member, expected_count: 0 respects visibility
1.74 seconds ./ee/spec/services/search/snippet_service_spec.rb:60
Finished in 2 minutes 48.2 seconds (files took 5.3 seconds to load)
After
Top 10 slowest examples (9.57 seconds, 8.3% of total time):
Search::SnippetService#execute visibility project snippet snippet_level: :internal, project_level: :public, feature_access_level: :enabled, membership: :non_member, expected_count: 1 respects visibility
1.18 seconds ./ee/spec/services/search/snippet_service_spec.rb:68
Search::SnippetService#execute visibility project snippet snippet_level: :public, project_level: :private, feature_access_level: :disabled, membership: :non_member, expected_count: 0 respects visibility
1.01 seconds ./ee/spec/services/search/snippet_service_spec.rb:68
Search::SnippetService#execute visibility project snippet snippet_level: :private, project_level: :internal, feature_access_level: :enabled, membership: :guest, expected_count: 1 respects visibility
0.94942 seconds ./ee/spec/services/search/snippet_service_spec.rb:68
Search::SnippetService#execute visibility project snippet snippet_level: :public, project_level: :private, feature_access_level: :disabled, membership: :guest, expected_count: 0 respects visibility
0.94568 seconds ./ee/spec/services/search/snippet_service_spec.rb:68
Search::SnippetService#execute visibility project snippet snippet_level: :private, project_level: :private, feature_access_level: :private, membership: :guest, expected_count: 1 respects visibility
0.93386 seconds ./ee/spec/services/search/snippet_service_spec.rb:68
Search::SnippetService behaves like EE search service shared examples #execute advanced syntax queries for all scopes with query "display bug" and scope snippet_titles allows advanced query
0.92009 seconds ./ee/spec/support/shared_examples/services/search_service_shared_examples.rb:81
Search::SnippetService#execute visibility project snippet snippet_level: :public, project_level: :private, feature_access_level: :disabled, membership: :anonymous, expected_count: 0 respects visibility
0.91766 seconds ./ee/spec/services/search/snippet_service_spec.rb:68
Search::SnippetService#execute visibility project snippet snippet_level: :public, project_level: :public, feature_access_level: :private, membership: :reporter, expected_count: 1 respects visibility
0.90205 seconds ./ee/spec/services/search/snippet_service_spec.rb:68
Search::SnippetService#execute visibility project snippet snippet_level: :public, project_level: :private, feature_access_level: :private, membership: :reporter, expected_count: 1 respects visibility
0.901 seconds ./ee/spec/services/search/snippet_service_spec.rb:68
Search::SnippetService#execute visibility project snippet snippet_level: :public, project_level: :internal, feature_access_level: :private, membership: :guest, expected_count: 1 respects visibility
0.89897 seconds ./ee/spec/services/search/snippet_service_spec.rb:68
Finished in 1 minute 55.81 seconds (files took 4.46 seconds to load)
Does this MR meet the acceptance criteria?
Conformity
Edited by Francisco Javier López