• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pulibrary / tigerdata-app / 6a5be3a8-ecd4-400d-9134-33099047b33b

21 Oct 2025 03:31PM UTC coverage: 91.184% (+0.1%) from 91.054%
6a5be3a8-ecd4-400d-9134-33099047b33b

push

circleci

web-flow
Ensuring that `parallelism` is set to 4 for CircleCI and separates `system` tests into separate CI jobs (#2055)

* - Ensuring that `parallelism` is set to 4
- Separating `system` RSpec spec suites in the CI build
- Using an `inconsistent` RSpec tag to mark inconsistently failing tests
- Ensuring that CI does not run for `inconsistent` tests

* Removing `inconsistent` tag for RSpec test suites

2741 of 3006 relevant lines covered (91.18%)

763.77 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

100.0
/app/services/user_error_parser.rb
1
# frozen_string_literal: true
2
class UserErrorParser
3✔
3
  class << self
3✔
4
    def csv_users(errors_str)
3✔
5
      users = parse(errors_str)
2✔
6
      "uid,email,given_name,family_name,display_name,eligible_sponsor," \
2✔
7
      "eligible_manager,developer,sysadmin,tester_trainer,DateAdded,AddedBy,Notes\n" \
8
      "#{users.join("\n")}"
9
    end
10

11
    def parse(errors_str)
3✔
12
      errors = errors_str.split("\n")
10✔
13
      roles = errors.map { |error| parse_line(error) }.flatten
32✔
14
      user_roles = roles.group_by { |role| role[:uid] }
96✔
15
      user_roles.map do |uid, user_role|
10✔
16
        "#{uid},,,,,#{sponsor_flag(user_role)},#{manager_flag(user_role)},,,,#{report_date},ImportProcess,\"Capacity Early Adopter\""
72✔
17
      end
18
    end
19

20
      private
3✔
21

22
        def parse_line(error)
3✔
23
          error_messages = error.split(";")
22✔
24
          error_messages.map do |str|
22✔
25
            user_role = str.split(":").last
86✔
26
            parts = user_role.split(" for role ")
86✔
27
            uid = parts.first
86✔
28
            role = parts.last
86✔
29
            { uid: uid.strip, role: role.strip }
86✔
30
          end
31
        end
32

33
        def report_date
3✔
34
          Time.current.in_time_zone("America/New_York").strftime("%Y-%m-%d")
72✔
35
        end
36

37
        def sponsor_flag(roles)
3✔
38
          if roles.count { |data| data[:role] == "Data Sponsor" }.positive?
158✔
39
            "TRUE"
22✔
40
          else
41
            ""
50✔
42
          end
43
        end
44

45
        def manager_flag(roles)
3✔
46
          if roles.count { |data| data[:role] == "Data Manager" }.positive?
158✔
47
            "TRUE"
16✔
48
          else
49
            ""
56✔
50
          end
51
        end
52
  end
53
end
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc