capybara_error_intel 1.0.0 → 1.0.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
2
  SHA1:
3
- metadata.gz: 5862341b63629cf16f8b3339b62789c905b61170
4
- data.tar.gz: b9472f2a9161625dbea7f8596fa49dc074ba8108
3
+ metadata.gz: 81b194d9c5e7129751a873fa127b42a9bdc0a4a7
4
+ data.tar.gz: aa716d7326530d1bb0e7ba5ff46b2f20ec1e6543
5
5
  SHA512:
6
- metadata.gz: 33d204d510b83490e5fff56da2b4018c79fb6f031ff8eedfe6195ec60b995b5a6672f6009a480df95d3497e063795fbe66e2fdfffd0cdc66f7e2a87597f833e8
7
- data.tar.gz: 332f5782bf6eac411f4b6a01ff76159d8e97e0b89ef930809053113a5728a6b8c6a4170bb15a573658c2eb5f6f450b2cfc1a6796f51778a8ce6d5a8eb4aeb715
6
+ metadata.gz: 47c67c1c8c075df865c9f74a74f781240bd3d6a490dac915361210f55a0c4448d043c5699164d298a5d9504d12903054098003549b7274a5ca77d4d9aad279a7
7
+ data.tar.gz: 56645910801df9e620c9fd926fba6d26065fbedc8f426c7385204c4e5db8a7d5b6f45f652110fb5c698195e0ffef2ed922b8c3b20da466ba92bab55767fb875e
data/.codeclimate.yml ADDED
@@ -0,0 +1,16 @@
1
+ ---
2
+ engines:
3
+ duplication:
4
+ enabled: true
5
+ config:
6
+ languages:
7
+ - ruby
8
+ fixme:
9
+ enabled: true
10
+ rubocop:
11
+ enabled: true
12
+ ratings:
13
+ paths:
14
+ - "**.rb"
15
+ exclude_paths:
16
+ - spec/
data/.gitignore CHANGED
@@ -9,3 +9,4 @@
9
9
  /tmp/
10
10
  /vendor/bundle
11
11
  *.gem
12
+ .cadre
data/.rubocop.yml ADDED
@@ -0,0 +1,9 @@
1
+ Metrics/LineLength:
2
+ Max: 999
3
+ Style/PredicateName:
4
+ Enabled: false
5
+ AllCops:
6
+ Exclude:
7
+ - '*.gemspec'
8
+ - 'vendor/**/*'
9
+
data/.travis.yml CHANGED
@@ -3,4 +3,8 @@ language: ruby
3
3
  rvm:
4
4
  - 2.3.1
5
5
  - 2.2.0
6
+ - 2.1.0
6
7
  before_install: gem install bundler -v 1.12.5
8
+ addons:
9
+ code_climate:
10
+ repo_token: d11a38ad79ee8bc4d2972305aeaf999e0de48508813f76ba0ec991842dafc45f
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  ![CapybaraErrorIntel](img/CapybaraErrorIntel.png)
2
2
 
3
- [![Build Status](https://travis-ci.org/dkarter/capybara_error_intel.svg?branch=master)](https://travis-ci.org/dkarter/capybara_error_intel)
3
+ [![Build Status](https://travis-ci.org/dkarter/capybara_error_intel.svg?branch=master)](https://travis-ci.org/dkarter/capybara_error_intel) [![Code Climate](https://codeclimate.com/github/dkarter/capybara_error_intel/badges/gpa.svg)](https://codeclimate.com/github/dkarter/capybara_error_intel) [![Test Coverage](https://codeclimate.com/github/dkarter/capybara_error_intel/badges/coverage.svg)](https://codeclimate.com/github/dkarter/capybara_error_intel/coverage) [![Issue Count](https://codeclimate.com/github/dkarter/capybara_error_intel/badges/issue_count.svg)](https://codeclimate.com/github/dkarter/capybara_error_intel)
4
4
 
5
- Capybara provides excellent error messages for its built in predicate methods: `has_selector?`, `has_text?`, and `has_title?` but when those are used from Page Objects while exposing predicate methods from the PageObjects themselves the error messages are lost and all we get is `expected true, got false`. Including this module into your PageObject by adding `include CapybaraErrorIntel::DSL` after `include Capybara::DSL` will return the heuristic error messages.
5
+ Capybara provides excellent error messages for its built in predicate methods: `has_selector?`, `has_text?`, `has_title?` etc., but when those are used from Page Objects while exposing predicate methods from the PageObjects themselves the error messages are lost and all we get is `expected true, got false`. Including this module into your PageObject by adding `include CapybaraErrorIntel::DSL` after `include Capybara::DSL` will return the heuristic error messages.
6
6
 
7
7
  ## Example
8
8
 
@@ -76,9 +76,7 @@ end
76
76
  - `has_table?(locator, options={})`
77
77
 
78
78
 
79
- It should be rather trivial to add more of them like `has_css` etc. I will try
80
- to implement the rest in the near future but feel free to submit a pull
81
- request.
79
+ It should be rather trivial to add more of them. Please open an issue or submit a pull request if something you need is missing.
82
80
 
83
81
 
84
82
 
data/Rakefile CHANGED
@@ -1,6 +1,8 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+ require 'rubocop/rake_task'
3
4
 
5
+ RuboCop::RakeTask.new
4
6
  RSpec::Core::RakeTask.new(:spec)
5
7
 
6
- task :default => :spec
8
+ task default: [:spec, :rubocop]
data/bin/console CHANGED
@@ -1,12 +1,11 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "bundler/setup"
4
- require "capybara_error_intel"
3
+ require 'bundler/setup'
4
+ require 'capybara_error_intel'
5
5
 
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
8
8
 
9
9
  # (If you use this, don't forget to add pry to your Gemfile!)
10
- require "pry"
10
+ require 'pry'
11
11
  Pry.start
12
-
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ['Dorian Karter']
10
10
  spec.email = ['jobs@doriankarter.com']
11
11
 
12
- spec.summary = %q{Provides Capybara's heuristic error messages for Page Objects}
13
- spec.description = %q{Capybara provides excellent error messages for its
12
+ spec.summary = 'Provides Capybara\'s heuristic error messages for Page Objects'
13
+ spec.description = 'Capybara provides excellent error messages for its
14
14
  built in predicate methods: has_selector?, has_text?,
15
15
  has_title? etc.. but when those are used from Page
16
16
  Objects while exposing predicate methods from the
@@ -19,12 +19,12 @@ Gem::Specification.new do |spec|
19
19
  Including this module into your PageObject by adding
20
20
  "include CapybaraErrorIntel::DSL" after
21
21
  "include Capybara::DSL" will return the heuristic
22
- error messages.}
22
+ error messages.'
23
23
  spec.homepage = 'https://github.com/dkarter/capybara_error_intel'
24
24
  spec.license = 'MIT'
25
25
 
26
26
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
27
- spec.require_paths = ["lib"]
27
+ spec.require_paths = ['lib']
28
28
 
29
29
  spec.add_development_dependency 'bundler', '~> 1.12'
30
30
  spec.add_development_dependency 'rake', '~> 10.0'
@@ -32,9 +32,13 @@ Gem::Specification.new do |spec|
32
32
  spec.add_development_dependency 'launchy', '~> 0'
33
33
  spec.add_development_dependency 'rack', '~> 1.6', '>= 1.6.4'
34
34
  spec.add_development_dependency 'rack-test', '~> 0.5', '>= 0.5.4'
35
- spec.add_development_dependency 'pry', '~> 0.10'
36
- spec.add_development_dependency 'pry-byebug', '~> 3.4'
35
+ spec.add_development_dependency 'pry'
36
+ spec.add_development_dependency 'pry-byebug'
37
+ spec.add_development_dependency 'rubocop'
38
+ spec.add_development_dependency 'cadre'
39
+ spec.add_development_dependency 'simplecov'
40
+ spec.add_development_dependency 'codeclimate-test-reporter'
37
41
 
38
- spec.add_runtime_dependency 'rspec', '~> 2.1'
42
+ spec.add_runtime_dependency 'rspec', '~> 2'
39
43
  spec.add_runtime_dependency 'capybara', '~> 2'
40
44
  end
@@ -5,6 +5,9 @@ require 'capybara/dsl'
5
5
  require 'capybara/rspec/matchers'
6
6
  require 'rspec'
7
7
 
8
+ # Provides Capybara::DSL predicate method wrappers that fail the test with heuristic
9
+ # Capybara errors when the result is `false`. Particularly useful when used
10
+ # inside page objects, allowing the user to expose predicate methods of their
11
+ # own.
8
12
  module CapybaraErrorIntel
9
-
10
13
  end
@@ -1,39 +1,40 @@
1
1
  module CapybaraErrorIntel
2
+ # Wraps Capybara::DSL
2
3
  module DSL
3
4
  def has_selector?(*args)
4
5
  matcher = has_selector(*args)
5
6
  match_or_error(matcher)
6
7
  end
7
8
 
8
- def has_css?(css, options={})
9
+ def has_css?(css, options = {})
9
10
  has_selector?(:css, css, options)
10
11
  end
11
12
 
12
- def has_button?(locator, options={})
13
+ def has_button?(locator, options = {})
13
14
  has_selector?(:button, locator, options)
14
15
  end
15
16
 
16
- def has_field?(locator, options={})
17
+ def has_field?(locator, options = {})
17
18
  has_selector?(:field, locator, options)
18
19
  end
19
20
 
20
- def has_xpath?(xpath, options={})
21
+ def has_xpath?(_xpath, options = {})
21
22
  has_selector?(:xpath, locator, options)
22
23
  end
23
24
 
24
- def has_checked_field?(locator, options={})
25
- has_selector?(:field, locator, options.merge(:checked => true))
25
+ def has_checked_field?(locator, options = {})
26
+ has_selector?(:field, locator, options.merge(checked: true))
26
27
  end
27
28
 
28
- def has_unchecked_field?(locator, options={})
29
- has_selector?(:field, locator, options.merge(:unchecked => true))
29
+ def has_unchecked_field?(locator, options = {})
30
+ has_selector?(:field, locator, options.merge(unchecked: true))
30
31
  end
31
32
 
32
- def has_select?(locator, options={})
33
+ def has_select?(locator, options = {})
33
34
  has_selector?(:select, locator, options)
34
35
  end
35
36
 
36
- def has_table?(locator, options={})
37
+ def has_table?(locator, options = {})
37
38
  has_selector?(:table, locator, options)
38
39
  end
39
40
 
@@ -41,7 +42,7 @@ module CapybaraErrorIntel
41
42
  matcher = has_text(*args)
42
43
  match_or_error(matcher)
43
44
  end
44
- alias_method :has_content?, :has_text?
45
+ alias has_content? has_text?
45
46
 
46
47
  def has_title?(title, options = {})
47
48
  matcher = has_title(title, options)
@@ -50,30 +51,30 @@ module CapybaraErrorIntel
50
51
 
51
52
  private
52
53
 
53
- def has_selector(*args)
54
- Capybara::RSpecMatchers::HaveSelector.new(*args)
55
- end
54
+ def has_selector(*args)
55
+ Capybara::RSpecMatchers::HaveSelector.new(*args)
56
+ end
56
57
 
57
- def has_text(*args)
58
- Capybara::RSpecMatchers::HaveText.new(*args)
59
- end
58
+ def has_text(*args)
59
+ Capybara::RSpecMatchers::HaveText.new(*args)
60
+ end
60
61
 
61
- def has_title(title, options)
62
- Capybara::RSpecMatchers::HaveTitle.new(title, options)
63
- end
62
+ def has_title(title, options)
63
+ Capybara::RSpecMatchers::HaveTitle.new(title, options)
64
+ end
64
65
 
65
- def match_or_error(matcher)
66
- matcher.matches?(Capybara.current_session) || handle_failure(matcher)
67
- end
66
+ def match_or_error(matcher)
67
+ matcher.matches?(Capybara.current_session) || handle_failure(matcher)
68
+ end
68
69
 
69
- def handle_failure(matcher)
70
- message = matcher.failure_message
70
+ def handle_failure(matcher)
71
+ message = matcher.failure_message
71
72
 
72
- if matcher.respond_to?(:diffable?) && matcher.diffable?
73
- RSpec::Expectations.fail_with message, matcher.expected, matcher.actual
74
- else
75
- RSpec::Expectations.fail_with message
76
- end
73
+ if matcher.respond_to?(:diffable?) && matcher.diffable?
74
+ RSpec::Expectations.fail_with message, matcher.expected, matcher.actual
75
+ else
76
+ RSpec::Expectations.fail_with message
77
77
  end
78
+ end
78
79
  end
79
80
  end
@@ -1,3 +1,3 @@
1
1
  module CapybaraErrorIntel
2
- VERSION = "1.0.0"
2
+ VERSION = '1.0.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capybara_error_intel
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dorian Karter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-19 00:00:00.000000000 Z
11
+ date: 2016-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -116,44 +116,100 @@ dependencies:
116
116
  name: pry
117
117
  requirement: !ruby/object:Gem::Requirement
118
118
  requirements:
119
- - - "~>"
119
+ - - ">="
120
120
  - !ruby/object:Gem::Version
121
- version: '0.10'
121
+ version: '0'
122
122
  type: :development
123
123
  prerelease: false
124
124
  version_requirements: !ruby/object:Gem::Requirement
125
125
  requirements:
126
- - - "~>"
126
+ - - ">="
127
127
  - !ruby/object:Gem::Version
128
- version: '0.10'
128
+ version: '0'
129
129
  - !ruby/object:Gem::Dependency
130
130
  name: pry-byebug
131
131
  requirement: !ruby/object:Gem::Requirement
132
132
  requirements:
133
- - - "~>"
133
+ - - ">="
134
134
  - !ruby/object:Gem::Version
135
- version: '3.4'
135
+ version: '0'
136
136
  type: :development
137
137
  prerelease: false
138
138
  version_requirements: !ruby/object:Gem::Requirement
139
139
  requirements:
140
- - - "~>"
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ - !ruby/object:Gem::Dependency
144
+ name: rubocop
145
+ requirement: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - ">="
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: '0'
157
+ - !ruby/object:Gem::Dependency
158
+ name: cadre
159
+ requirement: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - ">="
162
+ - !ruby/object:Gem::Version
163
+ version: '0'
164
+ type: :development
165
+ prerelease: false
166
+ version_requirements: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - ">="
141
169
  - !ruby/object:Gem::Version
142
- version: '3.4'
170
+ version: '0'
171
+ - !ruby/object:Gem::Dependency
172
+ name: simplecov
173
+ requirement: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - ">="
176
+ - !ruby/object:Gem::Version
177
+ version: '0'
178
+ type: :development
179
+ prerelease: false
180
+ version_requirements: !ruby/object:Gem::Requirement
181
+ requirements:
182
+ - - ">="
183
+ - !ruby/object:Gem::Version
184
+ version: '0'
185
+ - !ruby/object:Gem::Dependency
186
+ name: codeclimate-test-reporter
187
+ requirement: !ruby/object:Gem::Requirement
188
+ requirements:
189
+ - - ">="
190
+ - !ruby/object:Gem::Version
191
+ version: '0'
192
+ type: :development
193
+ prerelease: false
194
+ version_requirements: !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - ">="
197
+ - !ruby/object:Gem::Version
198
+ version: '0'
143
199
  - !ruby/object:Gem::Dependency
144
200
  name: rspec
145
201
  requirement: !ruby/object:Gem::Requirement
146
202
  requirements:
147
203
  - - "~>"
148
204
  - !ruby/object:Gem::Version
149
- version: '2.1'
205
+ version: '2'
150
206
  type: :runtime
151
207
  prerelease: false
152
208
  version_requirements: !ruby/object:Gem::Requirement
153
209
  requirements:
154
210
  - - "~>"
155
211
  - !ruby/object:Gem::Version
156
- version: '2.1'
212
+ version: '2'
157
213
  - !ruby/object:Gem::Dependency
158
214
  name: capybara
159
215
  requirement: !ruby/object:Gem::Requirement
@@ -185,8 +241,10 @@ executables: []
185
241
  extensions: []
186
242
  extra_rdoc_files: []
187
243
  files:
244
+ - ".codeclimate.yml"
188
245
  - ".gitignore"
189
246
  - ".rspec"
247
+ - ".rubocop.yml"
190
248
  - ".travis.yml"
191
249
  - Gemfile
192
250
  - LICENSE.txt