summaryrefslogtreecommitdiff
path: root/danger/karma/Dangerfile
blob: 6d692a89e133d221fcae0dd43f673dc2c232ba2c (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
# frozen_string_literal: true
# rubocop:disable Style/SignalException

def get_karma_files(files)
  files.select do |file|
    file.start_with?('ee/spec/javascripts', 'spec/javascripts') &&
    !file.end_with?('browser_spec.js')
  end
end

new_karma_files = get_karma_files(git.added_files.to_a)

unless new_karma_files.empty?

  if GitlabDanger.new(helper.gitlab_helper).ci?
    markdown(<<~MARKDOWN)
    ## New karma spec file

    New frontend specs ([except `browser_specs`](https://gitlab.com/gitlab-org/gitlab/blob/3b6fe2f1077eedb0b8aff02a7350234f0b7dc4f9/spec/javascripts/lib/utils/browser_spec.js#L2)) should be
    [written in jest](https://docs.gitlab.com/ee/development/testing_guide/frontend_testing.html#jest).

    You have created the following tests, please migrate them over to jest:

    * #{new_karma_files.map { |path| "`#{path}`" }.join("\n* ")}
    MARKDOWN
  end

  fail "You have created a new karma spec file"

end

changed_karma_files = get_karma_files(helper.all_changed_files) - new_karma_files

return if changed_karma_files.empty?

warn 'You have edited karma spec files. Please consider migrating them to jest.'

if GitlabDanger.new(helper.gitlab_helper).ci?
  markdown(<<~MARKDOWN)
    ## Edited karma files

    You have edited the following karma spec files. Please consider migrating them to jest:

    * #{changed_karma_files.map { |path| "`#{path}`" }.join("\n* ")}

    In order to align with our Iteration value, migration can also be done as a follow-up.

    For more information: [Jestodus epic](https://gitlab.com/groups/gitlab-org/-/epics/895)
  MARKDOWN
end