capybara-chromedriver-logger 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: a2adb7cdaeb7970c7f543a69bade1af3c1dd37bf
4
- data.tar.gz: 5296595dcd28304754d3c6bc122463fc0b965363
2
+ SHA256:
3
+ metadata.gz: a0188c7bb3434429a524f07cfe950f0a02b4bd2e4c949a5dc3e8ecd65a553644
4
+ data.tar.gz: 22342de9e1295f5377375ea0a248d3b5e4ff2c41da8a696ab53d772da69470ce
5
5
  SHA512:
6
- metadata.gz: f99ad48a1477114a5323163a535a7ed112bee149ab8a4dccc668562c9187a256e2821b1370176de5496010ee5f21a8a0b4fd53c36b4ac93228764a0df10972bd
7
- data.tar.gz: 27578f35e27085a1a800890545c85d49a9f03a65f27c642ca5b018b02713b9ccde3d5ba8d696609ea0f6a11c11e5cf0232b7fb13cdaa7dde8cf4d3642c047823
6
+ metadata.gz: 2b5818892be7d9ad66d4c00c741c7d4ae50f70bb863b32d20a77943d272970f53c73ce052d508e2cc03dffedfd2526a67bdf7f0907cc7ff9e8b77048f3e4e207
7
+ data.tar.gz: abf13f36355acf43333c0716aafae32a91fbbf7777c4870130f4785e9be9796367f2922654295507a0d300e9f8822bd639a3f2a08de3cff80357f9923ed06c24
@@ -0,0 +1,141 @@
1
+ AllCops:
2
+ # RuboCop has a bunch of cops enabled by default. This setting tells RuboCop
3
+ # to ignore them, so only the ones explicitly set in this file are enabled.
4
+ DisabledByDefault: true
5
+ TargetRubyVersion: 2.3
6
+
7
+ # Prefer &&/|| over and/or.
8
+ Style/AndOr:
9
+ Enabled: true
10
+
11
+ # Do not use braces for hash literals when they are the last argument of a
12
+ # method call.
13
+ Style/BracesAroundHashParameters:
14
+ Enabled: true
15
+
16
+ # Align `when` with `case`.
17
+ Layout/CaseIndentation:
18
+ Enabled: true
19
+
20
+ # Align comments with method definitions.
21
+ Layout/CommentIndentation:
22
+ Enabled: true
23
+
24
+ Layout/EmptyLineAfterMagicComment:
25
+ Enabled: true
26
+
27
+ # No extra empty lines.
28
+ Layout/EmptyLines:
29
+ Enabled: true
30
+
31
+ # In a regular class definition, no empty lines around the body.
32
+ Layout/EmptyLinesAroundClassBody:
33
+ Enabled: true
34
+
35
+ # In a regular method definition, no empty lines around the body.
36
+ Layout/EmptyLinesAroundMethodBody:
37
+ Enabled: true
38
+
39
+ # In a regular module definition, no empty lines around the body.
40
+ Layout/EmptyLinesAroundModuleBody:
41
+ Enabled: true
42
+
43
+ # Use Ruby >= 1.9 syntax for hashes. Prefer { a: :b } over { :a => :b }.
44
+ Style/HashSyntax:
45
+ Enabled: true
46
+
47
+ # Method definitions after `private` or `protected` isolated calls need one
48
+ # extra level of indentation.
49
+ Layout/IndentationConsistency:
50
+ Enabled: true
51
+ EnforcedStyle: normal
52
+
53
+ # Two spaces, no tabs (for indentation).
54
+ Layout/IndentationWidth:
55
+ Enabled: true
56
+
57
+ Layout/SpaceAfterColon:
58
+ Enabled: true
59
+
60
+ Layout/SpaceAfterComma:
61
+ Enabled: true
62
+
63
+ Layout/SpaceAroundEqualsInParameterDefault:
64
+ Enabled: true
65
+
66
+ Layout/SpaceAroundKeyword:
67
+ Enabled: true
68
+
69
+ Layout/SpaceAroundOperators:
70
+ Enabled: true
71
+
72
+ Layout/SpaceBeforeFirstArg:
73
+ Enabled: true
74
+
75
+ # Defining a method with parameters needs parentheses.
76
+ Style/MethodDefParentheses:
77
+ Enabled: true
78
+
79
+ # Use `foo {}` not `foo{}`.
80
+ Layout/SpaceBeforeBlockBraces:
81
+ Enabled: true
82
+
83
+ # Use `foo { bar }` not `foo {bar}`.
84
+ Layout/SpaceInsideBlockBraces:
85
+ Enabled: true
86
+
87
+ # Use `{ a: 1 }` not `{a:1}`.
88
+ Layout/SpaceInsideHashLiteralBraces:
89
+ Enabled: true
90
+
91
+ Layout/SpaceInsideParens:
92
+ Enabled: true
93
+
94
+ # Don't care about single vs double quotes
95
+ Style/StringLiterals:
96
+ Enabled: false
97
+ SupportedStyles:
98
+ - single_quotes
99
+ - double_quotes
100
+
101
+ # Detect hard tabs, no hard tabs.
102
+ Layout/Tab:
103
+ Enabled: true
104
+
105
+ # Blank lines should not have any spaces.
106
+ Layout/TrailingBlankLines:
107
+ Enabled: true
108
+
109
+ Metrics/LineLength:
110
+ Enabled: true
111
+ Max: 80
112
+ IgnoredPatterns: ['\A\s*class ']
113
+
114
+ Layout/MultilineMethodCallIndentation:
115
+ Enabled: true
116
+ EnforcedStyle: indented
117
+ IndentationWidth: 2
118
+
119
+ # No trailing whitespace.
120
+ Layout/TrailingWhitespace:
121
+ Enabled: true
122
+
123
+ # Use quotes for string literals when they are enough.
124
+ Style/UnneededPercentQ:
125
+ Enabled: true
126
+
127
+ # Align `end` with the matching keyword or starting expression except for
128
+ # assignments, where it should be aligned with the LHS.
129
+ Lint/EndAlignment:
130
+ Enabled: true
131
+ EnforcedStyleAlignWith: variable
132
+
133
+ # Use my_method(my_arg) not my_method( my_arg ) or my_method my_arg.
134
+ Lint/RequireParentheses:
135
+ Enabled: true
136
+
137
+ Style/BlockDelimiters:
138
+ Enabled: true
139
+
140
+ Style/SymbolArray:
141
+ Enabled: true
@@ -1,5 +1,11 @@
1
1
  sudo: false
2
2
  language: ruby
3
+ addons:
4
+ apt:
5
+ sources:
6
+ - google-chrome
7
+ packages:
8
+ - google-chrome-stable
3
9
  rvm:
4
10
  - 2.4.1
5
11
  before_install: gem install bundler -v 1.16.0
@@ -1,3 +1,8 @@
1
+ # 0.2.1 [June 23, 2018]
2
+
3
+ * Added `filter_levels` option for filtering by log level (closes #4)
4
+ * Fixed Travis CI build
5
+
1
6
  # 0.2.0 [Feb 17, 2018]
2
7
 
3
8
  * Stop using threads, it's a fool's errand. We now output logs at the end of each test
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- capybara-chromedriver-logger (0.2.0)
4
+ capybara-chromedriver-logger (0.2.1)
5
5
  capybara
6
6
  colorize
7
7
 
@@ -28,6 +28,7 @@ GEM
28
28
  colorize (0.8.1)
29
29
  diff-lcs (1.3)
30
30
  ffi (1.9.21)
31
+ gem-release (2.0.1)
31
32
  io-like (0.3.0)
32
33
  method_source (0.9.0)
33
34
  mini_mime (1.0.0)
@@ -39,7 +40,7 @@ GEM
39
40
  method_source (~> 0.9.0)
40
41
  public_suffix (3.0.2)
41
42
  rack (2.0.4)
42
- rack-test (0.8.2)
43
+ rack-test (1.0.0)
43
44
  rack (>= 1.0, < 3)
44
45
  rake (10.5.0)
45
46
  rspec (3.7.0)
@@ -71,6 +72,7 @@ DEPENDENCIES
71
72
  bundler (~> 1.16)
72
73
  capybara-chromedriver-logger!
73
74
  chromedriver-helper
75
+ gem-release
74
76
  pry
75
77
  rake (~> 10.0)
76
78
  rspec (~> 3.0)
@@ -78,4 +80,4 @@ DEPENDENCIES
78
80
  stub_server
79
81
 
80
82
  BUNDLED WITH
81
- 1.16.0
83
+ 1.16.2
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ [![Build Status](https://travis-ci.org/dbalatero/capybara-chromedriver-logger.svg?branch=master)](https://travis-ci.org/dbalatero/capybara-chromedriver-logger)
2
+
1
3
  # capybara-chromedriver-logger
2
4
 
3
5
  This gem provides `console.log` debug output for Ruby feature specs running under Chromedriver.
@@ -86,6 +88,16 @@ Capybara::Chromedriver::Logger.filters = [
86
88
  /Download the React DevTools/i,
87
89
  /The SSL certificate used to load resources from/i
88
90
  ]
91
+
92
+ # If you want to filter out specific severity levels, you can do so here:
93
+ #
94
+ # default: nil
95
+ Capybara::Chromedriver::Logger.filter_levels = %i[
96
+ severe
97
+ info
98
+ warning
99
+ debug
100
+ ]
89
101
  ```
90
102
 
91
103
  ## Development
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["David Balatero"]
10
10
  spec.email = ["dbalatero@gmail.com"]
11
11
 
12
- spec.summary = %q{Adds realtime console.log output to Capybara + Selenium + Chromedriver}
12
+ spec.summary = 'Adds realtime console.log output to Capybara + Selenium + Chromedriver'
13
13
  spec.homepage = "https://github.com/dbalatero/capybara-chromedriver-logger"
14
14
  spec.license = "MIT"
15
15
 
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
22
22
  "public gem pushes."
23
23
  end
24
24
 
25
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
25
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
26
26
  f.match(%r{^(test|spec|features)/})
27
27
  end
28
28
  spec.bindir = "exe"
@@ -34,6 +34,7 @@ Gem::Specification.new do |spec|
34
34
 
35
35
  spec.add_development_dependency "bundler", "~> 1.16"
36
36
  spec.add_development_dependency "chromedriver-helper"
37
+ spec.add_development_dependency "gem-release"
37
38
  spec.add_development_dependency "pry"
38
39
  spec.add_development_dependency "rake", "~> 10.0"
39
40
  spec.add_development_dependency "rspec", "~> 3.0"
@@ -1,11 +1,11 @@
1
1
  require 'capybara'
2
2
  require 'selenium-webdriver'
3
3
 
4
- require "capybara/chromedriver/logger/test_hooks"
5
- require "capybara/chromedriver/logger/version"
6
- require "capybara/chromedriver/logger/js_error"
7
- require "capybara/chromedriver/logger/message"
8
- require "capybara/chromedriver/logger/collector"
4
+ require 'capybara/chromedriver/logger/test_hooks'
5
+ require 'capybara/chromedriver/logger/version'
6
+ require 'capybara/chromedriver/logger/js_error'
7
+ require 'capybara/chromedriver/logger/message'
8
+ require 'capybara/chromedriver/logger/collector'
9
9
 
10
10
  module Capybara
11
11
  module Chromedriver
@@ -20,6 +20,14 @@ module Capybara
20
20
  @filters = filters
21
21
  end
22
22
 
23
+ def filter_levels
24
+ @filter_levels || []
25
+ end
26
+
27
+ def filter_levels=(filters)
28
+ @filter_levels = filters && filters.map(&:upcase).map(&:to_s)
29
+ end
30
+
23
31
  def raise_js_errors?
24
32
  !!@raise_js_errors
25
33
  end
@@ -2,10 +2,12 @@ module Capybara
2
2
  module Chromedriver
3
3
  module Logger
4
4
  class Collector
5
- def initialize(log_destination: $stdout, filters: nil)
6
- @log_destination = log_destination
7
- @filters = filters || Capybara::Chromedriver::Logger.filters
5
+ def initialize(options = {})
8
6
  @errors = []
7
+ @log_destination = options[:log_destination] || $stdout
8
+ @filters = options[:filters] || Capybara::Chromedriver::Logger.filters
9
+ @filter_levels = options[:filter_levels] ||
10
+ Capybara::Chromedriver::Logger.filter_levels
9
11
  end
10
12
 
11
13
  def flush_and_check_errors!
@@ -24,8 +26,7 @@ module Capybara
24
26
  formatted_errors = errors.map(&:to_s)
25
27
  error_list = formatted_errors.join("\n")
26
28
 
27
- raise JsError,
28
- "Got some JS errors during testing:\n\n#{error_list}"
29
+ raise JsError, "Got some JS errors during testing:\n\n#{error_list}"
29
30
  end
30
31
 
31
32
  def flush_logs!
@@ -55,20 +56,21 @@ module Capybara
55
56
  end
56
57
 
57
58
  def should_filter?(message)
58
- filters.any? { |filter| filter =~ message.message }
59
+ should_filter_by_level?(message) || should_filter_content?(message)
59
60
  end
60
61
 
61
- def errors
62
- @errors
62
+ def should_filter_by_level?(message)
63
+ filter_levels.include?(message.level)
63
64
  end
64
65
 
65
- def filters
66
- @filters
66
+ def should_filter_content?(message)
67
+ filters.any? { |filter| filter =~ message.message }
67
68
  end
68
69
 
69
- def log_destination
70
- @log_destination
71
- end
70
+ attr_reader :errors
71
+ attr_reader :filters
72
+ attr_reader :filter_levels
73
+ attr_reader :log_destination
72
74
  end
73
75
  end
74
76
  end
@@ -45,6 +45,7 @@ module Capybara
45
45
  def formatted_message
46
46
  message
47
47
  .gsub('\n', "\n")
48
+ .gsub('\u003C', "\u003C")
48
49
  .split("\n")
49
50
  .map { |line| "#{LEADING_SPACES}#{line}" }
50
51
  .join("\n")
@@ -9,8 +9,10 @@ module Capybara
9
9
 
10
10
  def self.for_rspec!
11
11
  ::RSpec.configure do |config|
12
- config.after :each, type: :feature do
13
- Capybara::Chromedriver::Logger::TestHooks.after_example!
12
+ %i[feature system].each do |type|
13
+ config.after :each, type: type do
14
+ Capybara::Chromedriver::Logger::TestHooks.after_example!
15
+ end
14
16
  end
15
17
  end
16
18
  end
@@ -1,7 +1,7 @@
1
1
  module Capybara
2
2
  module Chromedriver
3
3
  module Logger
4
- VERSION = "0.2.0"
4
+ VERSION = "0.2.1"
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capybara-chromedriver-logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Balatero
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-02-18 00:00:00.000000000 Z
11
+ date: 2018-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capybara
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: gem-release
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: pry
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -145,6 +159,7 @@ extra_rdoc_files: []
145
159
  files:
146
160
  - ".gitignore"
147
161
  - ".rspec"
162
+ - ".rubocop.yml"
148
163
  - ".travis.yml"
149
164
  - CHANGELOG.md
150
165
  - Gemfile
@@ -183,7 +198,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
183
198
  version: '0'
184
199
  requirements: []
185
200
  rubyforge_project:
186
- rubygems_version: 2.6.11
201
+ rubygems_version: 2.7.7
187
202
  signing_key:
188
203
  specification_version: 4
189
204
  summary: Adds realtime console.log output to Capybara + Selenium + Chromedriver