class CodeClimate::TestReporter::PayloadValidator
Public Class Methods
new(payload)
click to toggle source
# File lib/code_climate/test_reporter/payload_validator.rb, line 6 def initialize(payload) @payload = payload end
validate(payload)
click to toggle source
# File lib/code_climate/test_reporter/payload_validator.rb, line 10 def self.validate(payload) new(payload).validate end
Public Instance Methods
validate()
click to toggle source
# File lib/code_climate/test_reporter/payload_validator.rb, line 14 def validate raise InvalidPayload, "A git commit sha was not found in the test report payload" unless commit_sha raise InvalidPayload, "A git commit timestamp was not found in the test report payload" unless committed_at raise InvalidPayload, "A run at timestamp was not found in the test report payload" unless run_at raise InvalidPayload, "No source files were found in the test report payload" unless source_files? raise InvalidPayload, "Invalid source files were found in the test report payload" unless valid_source_files? true end
Private Instance Methods
commit_sha()
click to toggle source
# File lib/code_climate/test_reporter/payload_validator.rb, line 25 def commit_sha commit_sha_from_git || commit_sha_from_ci_service end
commit_sha_from_ci_service()
click to toggle source
# File lib/code_climate/test_reporter/payload_validator.rb, line 54 def commit_sha_from_ci_service @payload[:ci_service] && @payload[:ci_service][:commit_sha] end
commit_sha_from_git()
click to toggle source
# File lib/code_climate/test_reporter/payload_validator.rb, line 50 def commit_sha_from_git @payload[:git] && @payload[:git][:head] end
committed_at()
click to toggle source
# File lib/code_climate/test_reporter/payload_validator.rb, line 29 def committed_at (@payload[:git] && @payload[:git][:committed_at]) || (@payload[:ci_service] && @payload[:ci_service][:committed_at]) end
run_at()
click to toggle source
# File lib/code_climate/test_reporter/payload_validator.rb, line 34 def run_at @payload[:run_at] end
source_files?()
click to toggle source
# File lib/code_climate/test_reporter/payload_validator.rb, line 38 def source_files? @payload[:source_files] && @payload[:source_files].any? end
valid_source_file?(file)
click to toggle source
# File lib/code_climate/test_reporter/payload_validator.rb, line 46 def valid_source_file?(file) file.is_a?(Hash) && file[:coverage] && file[:name] end
valid_source_files?()
click to toggle source
# File lib/code_climate/test_reporter/payload_validator.rb, line 42 def valid_source_files? @payload[:source_files].all? { |s| valid_source_file?(s) } end