jericho 0.1.4 → 0.2.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
- SHA1:
3
- metadata.gz: 172d70e0b67b820c3ed6d34a84af1a43d71a47d4
4
- data.tar.gz: 2799812aa95803014db3103ef3077f88188ed0f2
2
+ SHA256:
3
+ metadata.gz: b5a5435e3f39b0e0073eca55c1764891ccc566157f90c3f67085a50db4db2e10
4
+ data.tar.gz: ae906c5404be57c3ecddac037a0d040b160121982d7df0698be38dc95cbe6db3
5
5
  SHA512:
6
- metadata.gz: 2dc5a4d9b0627a91e804720fe9eb33423950ea96a133105dfc8922baf18cf836112fb6e1394ad85a7b0c71104d17d32470852c47c90c8316d09a7ca3079db9e0
7
- data.tar.gz: 6d3d59cad4f474a9f327cce37920c5e07814e23abebc0dd4d7abe005f84185f9af40e80313d8b4f96acf5f650ae5a8eb0bd69b36ccafc3a3824d98c739b58363
6
+ metadata.gz: 8bb1c5391b1a9be056aec25b199b6ba4564e6de2c2c83cbcecd916aede87fd48e396c618e97dc1526e58af50193d055caba529723d452c24bd2b0c978c485723
7
+ data.tar.gz: aa9c2695854962390d5159d1d572a588c93bd19e3adaec5552395f0ce6f9f6ced33a1e22db74938dc0db155f83d023336e557469fd5dcba44e9841bf0cf8ca9e
data/README.md CHANGED
@@ -21,9 +21,11 @@ Or install it yourself as:
21
21
  $ gem install jericho
22
22
 
23
23
  ## Usage
24
+ Small simple gem to clear you cucumber ```.json``` reports of redundant info and post results to Slack
24
25
 
25
- TODO: Write usage instructions here
26
+ Add ```purify``` and ```repent``` calls to ```at_exit``` hook of your test suite and enjoy
26
27
 
28
+ Note that gem uses ```slack_ruby_client``` and ```dotenv``` to work properly
27
29
  ## Development
28
30
 
29
31
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -38,4 +40,3 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERN
38
40
  ## License
39
41
 
40
42
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
41
-
data/jericho.gemspec CHANGED
@@ -33,4 +33,6 @@ Gem::Specification.new do |spec|
33
33
  spec.add_development_dependency "bundler", "~> 1.13"
34
34
  spec.add_development_dependency "rake", "~> 10.0"
35
35
  spec.add_development_dependency "rspec", "~> 3.0"
36
+ spec.add_runtime_dependency 'dotenv', "~> 2.7"
37
+ spec.add_runtime_dependency 'slack-ruby-client', "~> 0.14.1"
36
38
  end
@@ -1,3 +1,3 @@
1
1
  module Jericho
2
- VERSION = "0.1.4"
2
+ VERSION = "0.2.0"
3
3
  end
data/lib/jericho.rb CHANGED
@@ -1,7 +1,61 @@
1
1
  require "jericho/version"
2
2
 
3
3
  module Jericho
4
- def self.hello_world
5
- puts "A very epic hello world"
4
+ def self.reporter(parsed_report)
5
+ list_of_scenarios_results = {}
6
+ parsed_report.each do |element|
7
+ element['elements'].each do |scenario|
8
+ scenario_status = 'Passed'
9
+ scenario['steps'].each do |step|
10
+ scenario_status = 'Failed' if step['result']['status'] != 'passed'
11
+ end
12
+ list_of_scenarios_results[(scenario['name']).to_s] = scenario_status
13
+ end
14
+ end
15
+ list_of_scenarios_results
16
+ end
17
+
18
+ def self.comparison_reporter(list_of_scenarios_results1, list_of_scenarios_results2)
19
+ failed_tests = list_of_scenarios_results2.select { |k, v| v == 'Failed' }.map do |k, v|
20
+ {
21
+ test_name: k === '' ? k = 'Background' : k,
22
+ actual_status: v,
23
+ previous_status: list_of_scenarios_results1[k]
24
+ }.reject { |_k, v| v.nil? }
25
+ end
26
+
27
+ {
28
+ passed: list_of_scenarios_results2.size - failed_tests.size,
29
+ failed: failed_tests.size,
30
+ failed_tests: failed_tests
31
+ }
32
+ end
33
+
34
+ def self.purify
35
+ arr = Dir['*.json'].sort!
36
+ arr.length <= 1 ? parsed_report1 = {} : parsed_report1 = JSON.parse(File.read(arr[-2]))
37
+ parsed_report2 = JSON.parse(File.read(arr.last))
38
+ result = comparison_reporter(reporter(parsed_report1), reporter(parsed_report2))
39
+ end
40
+
41
+ def self.repent
42
+ client = Slack::Web::Client.new
43
+ client.chat_postMessage(
44
+ channel: '#autotests',
45
+ text:
46
+ "Test run results for #{$driver.caps[:deviceName]}, #{$driver.caps[:platformName]} #{$driver.caps[:platformVersion]}:
47
+ Passed tests count: #{result[:passed]},
48
+ Failed tests count: #{result[:failed]},",
49
+ attachments: [
50
+ {
51
+ text: "*Failed tests*:
52
+ #{'Test name and previous status:' + ("\n") + result[:failed_tests].map { |t| t.values_at(:test_name, :previous_status) }.join("\n") }
53
+ ",
54
+ color: 'danger'
55
+ }
56
+ ],
57
+ mrkdwn: true,
58
+ as_user: true,
59
+ )
6
60
  end
7
61
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jericho
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kirill
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-11-16 00:00:00.000000000 Z
11
+ date: 2019-04-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,34 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: dotenv
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.7'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.7'
69
+ - !ruby/object:Gem::Dependency
70
+ name: slack-ruby-client
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.14.1
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.14.1
55
83
  description: '"Epic stuff"'
56
84
  email:
57
85
  - alexeyenko92@gmail.com
@@ -92,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
92
120
  version: '0'
93
121
  requirements: []
94
122
  rubyforge_project:
95
- rubygems_version: 2.5.1
123
+ rubygems_version: 2.7.8
96
124
  signing_key:
97
125
  specification_version: 4
98
126
  summary: '"Epic gem"'