blinka-reporter 0.2.0 → 0.3.3
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 +4 -4
- data/lib/blinka_client.rb +51 -6
- data/lib/minitest/blinka_plugin.rb +8 -4
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 76add87e3b4c07e52d38ace7ea5c8359b0eb2dc636165ffdf753fb3d475ed119
|
4
|
+
data.tar.gz: 5322abc35807213e72c59876ab0b33d5aaa8312bc8d56daf4203d34737666f5d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bff827a035306476db6c83740fa95fb6a620c9475e012ef7d48b9d6feac766fc47f31e91c63bb9ecca57bddb2064c3951b97393d5206d4937b44e62078518a5d
|
7
|
+
data.tar.gz: 6e1432283c7f061f44448b67cd4af16be906b4baf38cda9947ea6b9d4af1d4e4a1ebaf96b7231685afbfffc9d10ee6042103921f8c01dcf04b0b8f1db3a256b2
|
data/lib/blinka_client.rb
CHANGED
@@ -2,6 +2,10 @@ require 'mimemagic'
|
|
2
2
|
require 'httparty'
|
3
3
|
|
4
4
|
class BlinkaClient
|
5
|
+
DEFAULT_HOST = 'https://www.blinka.app'.freeze
|
6
|
+
|
7
|
+
include HTTParty
|
8
|
+
|
5
9
|
class BlinkaConfig
|
6
10
|
attr_reader(
|
7
11
|
:tag,
|
@@ -12,18 +16,27 @@ class BlinkaClient
|
|
12
16
|
:team_secret,
|
13
17
|
:jwt_token
|
14
18
|
)
|
19
|
+
|
15
20
|
def initialize
|
16
|
-
@host = ENV.fetch('BLINKA_HOST',
|
17
|
-
@team_id = ENV.fetch('BLINKA_TEAM_ID')
|
18
|
-
@team_secret = ENV.fetch('BLINKA_TEAM_SECRET')
|
19
|
-
@repository = ENV.fetch('BLINKA_REPOSITORY')
|
21
|
+
@host = ENV.fetch('BLINKA_HOST', DEFAULT_HOST)
|
22
|
+
@team_id = ENV.fetch('BLINKA_TEAM_ID', nil)
|
23
|
+
@team_secret = ENV.fetch('BLINKA_TEAM_SECRET', nil)
|
24
|
+
@repository = ENV.fetch('BLINKA_REPOSITORY', nil)
|
20
25
|
@tag = ENV.fetch('BLINKA_TAG', '')
|
21
|
-
@commit =
|
26
|
+
@commit = BlinkaClient.find_commit
|
27
|
+
|
28
|
+
if @team_id.nil? || @team_secret.nil? || @repository.nil?
|
29
|
+
raise(BlinkaError, <<~EOS)
|
30
|
+
Missing configuration, make sure to set required environment variables:
|
31
|
+
- BLINKA_TEAM_ID
|
32
|
+
- BLINKA_TEAM_SECRET
|
33
|
+
- BLINKA_REPOSITORY
|
34
|
+
EOS
|
35
|
+
end
|
22
36
|
end
|
23
37
|
end
|
24
38
|
|
25
39
|
class BlinkaError < StandardError; end
|
26
|
-
include HTTParty
|
27
40
|
|
28
41
|
def initialize
|
29
42
|
@config = BlinkaConfig.new
|
@@ -31,6 +44,18 @@ class BlinkaClient
|
|
31
44
|
end
|
32
45
|
|
33
46
|
def report(filepath: './blinka_results.json')
|
47
|
+
unless File.exist?(filepath)
|
48
|
+
raise(
|
49
|
+
BlinkaError,
|
50
|
+
'Could not find blinka_results.json, did tests run with environment variable BLINKA_JSON=true set?'
|
51
|
+
)
|
52
|
+
end
|
53
|
+
|
54
|
+
if ENV.fetch('BLINKA_ALLOW_WEBMOCK_DISABLE', 'true') == 'true' &&
|
55
|
+
defined?(WebMock) && WebMock.respond_to?(:disable!)
|
56
|
+
WebMock.disable!
|
57
|
+
end
|
58
|
+
|
34
59
|
self.authenticate
|
35
60
|
data = JSON.parse(File.open(filepath).read)
|
36
61
|
|
@@ -79,6 +104,19 @@ class BlinkaClient
|
|
79
104
|
else
|
80
105
|
raise(BlinkaError, "Could not report, got response code #{response.code}")
|
81
106
|
end
|
107
|
+
rescue => error
|
108
|
+
raise(BlinkaError, <<-EOS)
|
109
|
+
BLINKA:
|
110
|
+
Failed to create report because of #{error.class} with message:
|
111
|
+
#{error.message}
|
112
|
+
EOS
|
113
|
+
ensure
|
114
|
+
WebMock.enable! if defined?(WebMock) && WebMock.respond_to?(:enable!)
|
115
|
+
end
|
116
|
+
|
117
|
+
def self.report(filepath: './blinka_results.json')
|
118
|
+
client = BlinkaClient.new
|
119
|
+
client.report(filepath: filepath)
|
82
120
|
end
|
83
121
|
|
84
122
|
def self.upload_image(filepath:)
|
@@ -160,4 +198,11 @@ class BlinkaClient
|
|
160
198
|
}
|
161
199
|
}
|
162
200
|
end
|
201
|
+
|
202
|
+
def self.find_commit
|
203
|
+
ENV.fetch(
|
204
|
+
'BLINKA_COMMIT',
|
205
|
+
ENV.fetch('HEROKU_TEST_RUN_COMMIT_VERSION', `git rev-parse HEAD`.chomp)
|
206
|
+
)
|
207
|
+
end
|
163
208
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'minitest'
|
2
2
|
require 'json'
|
3
3
|
require 'blinka_minitest'
|
4
|
+
require 'blinka_client'
|
4
5
|
|
5
6
|
module Minitest
|
6
7
|
def self.plugin_blinka_init(options)
|
@@ -25,15 +26,18 @@ module Minitest
|
|
25
26
|
end
|
26
27
|
|
27
28
|
def report
|
28
|
-
tap_report
|
29
|
-
|
30
|
-
|
29
|
+
tap_report if ENV['BLINKA_TAP']
|
30
|
+
json_report if ENV['BLINKA_JSON'] || ENV['BLINKA_REPORT']
|
31
|
+
BlinkaClient.new.report if ENV['BLINKA_REPORT']
|
32
|
+
rescue BlinkaClient::BlinkaError => error
|
33
|
+
puts(error)
|
34
|
+
ensure
|
31
35
|
super
|
32
36
|
end
|
33
37
|
|
34
38
|
private
|
35
39
|
|
36
|
-
def
|
40
|
+
def json_report
|
37
41
|
result = {
|
38
42
|
total_time: total_time,
|
39
43
|
nbr_tests: count,
|
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.
|
4
|
+
version: 0.3.3
|
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-
|
11
|
+
date: 2021-02-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '13'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: webmock
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '3.11'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '3.11'
|
97
111
|
description: Use to format test results from Minitest to use with Blinka.
|
98
112
|
email: david@wessman.co
|
99
113
|
executables: []
|