summaryrefslogtreecommitdiff
path: root/tests.yml
blob: b2d8311fb7e998ee7123be90efb2341fe236cadb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
mapping:
  # EE app should map to respective spec
  - source: ee/app/(.+)\.rb
    test: ee/spec/%s_spec.rb

  # FOSS app should map to respective spec
  - source: app/(.+)\.rb
    test: spec/%s_spec.rb

  # EE extension should also map to its FOSS class spec
  - source: ee/app/(.*/)ee/(.+)\.rb
    test: spec/%s%s_spec.rb

  # Some EE extensions also map to its EE class spec, but this is not recommended:
  # https://docs.gitlab.com/ee/development/ee_features.html#testing-ee-features-based-on-ce-features
  - source: ee/app/(.*/)ee/(.+)\.rb
    test: ee/spec/%s%s_spec.rb

  # EE lib should map to respective spec
  - source: ee/lib/(.+)\.rb
    test: ee/spec/lib/%s_spec.rb

  # FOSS lib should map to respective spec
  - source: lib/(.+)\.rb
    test: spec/lib/%s_spec.rb

  # See https://gitlab.com/gitlab-org/gitlab/-/issues/368628
  - source: lib/gitlab/usage_data_counters/(.+)\.rb
    test: spec/lib/gitlab/usage_data_spec.rb

  # See https://gitlab.com/gitlab-org/quality/engineering-productivity/master-broken-incidents/-/issues/54#note_1160811638
  - source: lib/gitlab/ci/config/(.+)\.rb
    test: spec/lib/gitlab/ci/yaml_processor_spec.rb
  - source: ee/lib/gitlab/ci/config/(.+)\.rb
    test: spec/lib/gitlab/ci/yaml_processor_spec.rb
  - source: ee/lib/gitlab/ci/config/(.+)\.rb
    test: ee/spec/lib/gitlab/ci/yaml_processor_spec.rb

  # FOSS tooling should map to respective spec
  - source: tooling/(.+)\.rb
    test: spec/tooling/%s_spec.rb

  # RuboCop related specs
  - source: rubocop/(.+)\.rb
    test: spec/rubocop/%s_spec.rb

  # Initializers should map to respective spec
  - source: config/initializers/(.+)\.rb
    test: spec/initializers/%s_spec.rb

  # DB structure should map to schema spec
  - source: db/structure.sql
    test: spec/db/schema_spec.rb

  # Migration should map to either timestamped or non-timestamped spec
  - source: db/(?:post_)?migrate/(?:[0-9]+)_(.+)\.rb
    test: spec/migrations/%s_spec.rb
  - source: db/(?:post_)?migrate/([0-9]+)_(.+)\.rb
    test: spec/migrations/%s_%s_spec.rb

  # EE/FOSS views should map to respective spec
  - source: (ee/)?app/views/(.+)\.haml
    test: '%sspec/views/%s.haml_spec.rb'

  # EE/FOSS spec code should map to itself
  - source: (ee/)?spec/(.+)_spec\.rb
    test: '%sspec/%s_spec.rb'

  # EE extension spec should map to its FOSS class spec
  - source: ee/spec/(.*/)ee/(.+)\.rb
    test: spec/%s%s.rb

  # EE/FOSS factory should map to factories spec
  - source: (ee/)?spec/factories/.+\.rb
    test: ee/spec/models/factories_spec.rb

  # Whats New should map to its respective spec
  - source: data/whats_new/\w*.yml
    test: spec/lib/release_highlights/validator_spec.rb

  # The documentation index page is used in this haml_lint spec
  - source: doc/index.md
    test: spec/haml_lint/linter/documentation_links_spec.rb

  - source: (ee/)?app/workers/.+\.rb
    test: spec/workers/every_sidekiq_worker_spec.rb

  - source: lib/gitlab/usage_data_counters/known_events/.+\.yml
    test: spec/lib/gitlab/usage_data_counters/hll_redis_counter_spec.rb
  - source: lib/gitlab/usage_data_counters/known_events/.+\.yml
    test: spec/lib/gitlab/usage_data_spec.rb

  # Mailer previews
  - source: (ee/)?app/mailers/previews/.+\.rb
    test: spec/mailers/previews_spec.rb
  - source: ee/app/mailers/ee/preview/.+\.rb
    test: spec/mailers/previews_spec.rb

  ## GLFM spec and config files for CE and EE should map to respective markdown snapshot specs
  - source: glfm_specification/.+
    test: spec/requests/api/markdown_snapshot_spec.rb
  - source: glfm_specification/.+
    test: ee/spec/requests/api/markdown_snapshot_spec.rb

  # Any change to metrics definition should trigger the specs in the ee/spec/config/metrics/ folder.
  #
  # Note: We only have those tests for ee, even though we have non-ee metrics.
  #
  # See https://gitlab.com/gitlab-org/quality/engineering-productivity/master-broken-incidents/-/issues/287#note_1192008962
  - source: ee/config/metrics/.*.yml
    test: ee/spec/config/metrics/every_metric_definition_spec.rb
  - source: ee/lib/ee/gitlab/usage_data_counters/known_events/.*.yml
    test: ee/spec/config/metrics/every_metric_definition_spec.rb

  # See https://gitlab.com/gitlab-org/quality/engineering-productivity/team/-/issues/146
  - source: config/feature_categories.yml
    test: spec/db/docs_spec.rb
  - source: config/feature_categories.yml
    test: ee/spec/lib/ee/gitlab/database/docs/docs_spec.rb

  # See https://gitlab.com/gitlab-org/quality/engineering-productivity/master-broken-incidents/-/issues/1360
  - source: vendor/project_templates/.*
    test: spec/lib/gitlab/project_template_spec.rb

  # See https://gitlab.com/gitlab-org/quality/engineering-productivity/master-broken-incidents/-/issues/1683#note_1385966977
  - source: app/finders/members_finder.rb
    test: spec/graphql/types/project_member_relation_enum_spec.rb
  - source: app/finders/group_members_finder.rb
    test: spec/graphql/types/group_member_relation_enum_spec.rb