blinka-reporter 0.0.3 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 18e501d2a1f15c803273df5599a25e45b60ceef2161d3add9ea87f3f196f0d7e
4
- data.tar.gz: 87aacdaa903f3a0cdc549dd9c2e254d045e7929de14fbcfb9e48e4a7ce7ecd77
3
+ metadata.gz: 3fa8216d86cce40da5c4c423b473dcb6956302b017807ab383d93b94c32484fe
4
+ data.tar.gz: 1eabf2319cedab3b2378e087c66b36974fdc4dc0753ebd7cdb95f50300ac5df3
5
5
  SHA512:
6
- metadata.gz: f022dadecb2cd99c836194d647763de75954522b65b6db9766c4df8c18d4bb78d676d1bd603967ff48926f834aa32504445cd29d04317090145a9bb7abf96f5d
7
- data.tar.gz: e6a63bfb5c63966c10b38c598d160d376f5314e86ebf5d601be9370391082f5a89b732c14db114de7411aba9fe668ee882271f5622a2ca3cf444d330355fbec4
6
+ metadata.gz: 259de1e1edf5332fa682d95444a081d85cd2f55416ce183a92e4109822735ff594f70885cf3307d3045f8c7f9df73bc874a1ca7abb20523cd7e00980cbf3a6c5
7
+ data.tar.gz: b18f0a91507350ad8023894b7d237aab25a92683db6963c651d9267d316315a8f5233dcbc361355bd21e21530c181df4a318e7a1a3a353b5290d45bacaf817a4
data/lib/blinka_client.rb CHANGED
@@ -4,7 +4,7 @@ require 'httparty'
4
4
  class BlinkaClient
5
5
  class BlinkaConfig
6
6
  attr_reader(
7
- :branch,
7
+ :tag,
8
8
  :commit,
9
9
  :host,
10
10
  :repository,
@@ -13,12 +13,21 @@ class BlinkaClient
13
13
  :jwt_token
14
14
  )
15
15
  def initialize
16
- @host = ENV.fetch('BLINKA_HOST', 'https://blinkblink.herokuapp.com')
17
- @team_id = ENV.fetch('BLINKA_TEAM_ID')
18
- @team_secret = ENV.fetch('BLINKA_TEAM_SECRET')
19
- @repository = ENV.fetch('BLINKA_REPOSITORY')
20
- @branch = ENV.fetch('BLINKA_BRANCH')
16
+ @host = ENV.fetch('BLINKA_HOST', 'https://www.blinka.app')
17
+ @team_id = ENV.fetch('BLINKA_TEAM_ID', nil)
18
+ @team_secret = ENV.fetch('BLINKA_TEAM_SECRET', nil)
19
+ @repository = ENV.fetch('BLINKA_REPOSITORY', nil)
20
+ @tag = ENV.fetch('BLINKA_TAG', '')
21
21
  @commit = ENV.fetch('BLINKA_COMMIT', `git rev-parse HEAD`.chomp)
22
+
23
+ if @team_id.nil? || @team_secret.nil? || @repository.nil?
24
+ raise(BlinkaError, <<~EOS)
25
+ Missing configuration, make sure to set required environment variables:
26
+ - BLINKA_TEAM_ID
27
+ - BLINKA_TEAM_SECRET
28
+ - BLINKA_REPOSITORY
29
+ EOS
30
+ end
22
31
  end
23
32
  end
24
33
 
@@ -31,6 +40,12 @@ class BlinkaClient
31
40
  end
32
41
 
33
42
  def report(filepath: './blinka_results.json')
43
+ unless File.exists?(filepath)
44
+ raise(
45
+ BlinkaError,
46
+ 'Could not find blinka_results.json, did tests run with environment variable BLINKA_JSON=true set?'
47
+ )
48
+ end
34
49
  self.authenticate
35
50
  data = JSON.parse(File.open(filepath).read)
36
51
 
@@ -50,7 +65,7 @@ class BlinkaClient
50
65
  body = {
51
66
  report: {
52
67
  repository: @config.repository,
53
- branch: @config.branch,
68
+ tag: @config.tag,
54
69
  commit: @config.commit,
55
70
  metadata: {
56
71
  total_time: data.dig('total_time'),
@@ -10,6 +10,7 @@ module Minitest
10
10
  def plugin_blinka_options(opts, options); end
11
11
 
12
12
  module BlinkaPlugin
13
+ TAP_COMMENT_PAD = 8
13
14
  class Reporter < Minitest::StatisticsReporter
14
15
  attr_accessor :tests
15
16
 
@@ -24,8 +25,15 @@ module Minitest
24
25
  end
25
26
 
26
27
  def report
28
+ tap_report unless ENV['BLINKA_TAP'].nil?
29
+ json_report unless ENV['BLINKA_JSON'].nil?
30
+
27
31
  super
32
+ end
33
+
34
+ private
28
35
 
36
+ def json_report
29
37
  result = {
30
38
  total_time: total_time,
31
39
  nbr_tests: count,
@@ -41,6 +49,36 @@ module Minitest
41
49
  puts
42
50
  puts('Test results written to `./blinka_results.json`')
43
51
  end
52
+
53
+ # Based on https://github.com/kern/minitest-reporters/blob/master/lib/minitest/reporters/progress_reporter.rb
54
+ # Tries to adhere to https://testanything.org/tap-specification.html
55
+ def tap_report
56
+ puts
57
+ puts('TAP version 13')
58
+ puts("1..#{tests.length}")
59
+ tests.each_with_index do |test, index|
60
+ blinka = BlinkaMinitest.new(test)
61
+ test_str = "#{blinka.path} - #{test.name.tr('#', '_')}"
62
+ if test.passed?
63
+ puts "ok #{index + 1} - #{test_str}"
64
+ elsif test.skipped?
65
+ puts "ok #{index + 1} # skip: #{test_str}"
66
+ elsif test.failure
67
+ puts "not ok #{index + 1} - failed: #{test_str}"
68
+ blinka.message.each_line { |line| print_padded_comment(line) }
69
+
70
+ # test.failure.message.each_line { |line| print_padded_comment(line) }
71
+ unless test.failure.is_a?(MiniTest::UnexpectedError)
72
+ blinka.backtrace.each { |line| print_padded_comment(line) }
73
+ end
74
+ puts
75
+ end
76
+ end
77
+ end
78
+
79
+ def print_padded_comment(line)
80
+ puts "##{' ' * TAP_COMMENT_PAD + line}"
81
+ end
44
82
  end
45
83
  end
46
84
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blinka-reporter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Wessman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-02 00:00:00.000000000 Z
11
+ date: 2021-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -103,7 +103,7 @@ files:
103
103
  - lib/blinka_client.rb
104
104
  - lib/blinka_minitest.rb
105
105
  - lib/minitest/blinka_plugin.rb
106
- homepage: https://rubygemspec.org/gems/blinka-reporter
106
+ homepage: https://github.com/davidwessman/blinka_reporter
107
107
  licenses:
108
108
  - MIT
109
109
  metadata: {}