summaryrefslogtreecommitdiff
path: root/lib/gitlab/ci/reports/accessibility_reports.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/ci/reports/accessibility_reports.rb')
-rw-r--r--lib/gitlab/ci/reports/accessibility_reports.rb46
1 files changed, 46 insertions, 0 deletions
diff --git a/lib/gitlab/ci/reports/accessibility_reports.rb b/lib/gitlab/ci/reports/accessibility_reports.rb
new file mode 100644
index 00000000000..1901ba3b102
--- /dev/null
+++ b/lib/gitlab/ci/reports/accessibility_reports.rb
@@ -0,0 +1,46 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module Ci
+ module Reports
+ class AccessibilityReports
+ attr_reader :urls, :error_message
+
+ def initialize
+ @urls = {}
+ @error_message = nil
+ end
+
+ def add_url(url, data)
+ if url.empty?
+ set_error_message("Empty URL detected in gl-accessibility.json")
+ else
+ urls[url] = data
+ end
+ end
+
+ def scans_count
+ @urls.size
+ end
+
+ def passes_count
+ @urls.count { |url, errors| errors.empty? }
+ end
+
+ # rubocop: disable CodeReuse/ActiveRecord
+ def errors_count
+ @urls.sum { |url, errors| errors.size }
+ end
+ # rubocop: enable CodeReuse/ActiveRecord
+
+ def set_error_message(error)
+ @error_message = error
+ end
+
+ def all_errors
+ @urls.values.flatten
+ end
+ end
+ end
+ end
+end