conformity 0.0.3 → 0.0.4

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: 06a1ee41845235c2c6a610c633900b0965f29da3
4
- data.tar.gz: bb8a8354bc42db8784e585f41a0cddb6b0efa87a
3
+ metadata.gz: 1d8642508831e87cddb514c49e41a861c72e0763
4
+ data.tar.gz: 49f1b297869149c45f33b30eeb9a10988269ab8d
5
5
  SHA512:
6
- metadata.gz: fc1499b750d08250a1814a584d25042e54edab27dffde93b3d8f438daa6d916376614e77faefd54ef2a92f456a5cca19ba5cfb95d5dbbf18f6c0bef25bc9384d
7
- data.tar.gz: e5075bccf2989f0852bae4fdaa12461b4bb82c005db9b0e6fb1bca8dc3836c6a04dd9207ac52743c11dd0bf6364b5e3db38d9d3baf39217c73176c14c8b7fd84
6
+ metadata.gz: 04448922009d3e0e41f6d1b49502ab18b34d1b492f8d5efa21b3220e12001e164990a41904970df2b8dfb9407a43357cac744e1332ef44c2a6f6baf0854287c5
7
+ data.tar.gz: f091d83d17f1206ca70f061b6b40eb88110bb2b27938e2375ff794af52f154f50a38a57b3b93efe1b428aafe43428d62ba37c1ce9213d88bac342f1a9221c9be
data/README.md CHANGED
@@ -26,15 +26,22 @@ form = Form.new('http://www.google.com/') do
26
26
  visit '/'
27
27
  fill_in 'q', with: field(:query)
28
28
  click_on 'Google Search'
29
+
30
+ # optional conditions to verify form submission success
31
+ has_status_code? 200
32
+ has_content? 'Search Tools'
29
33
  end
30
34
 
31
35
  form.field_names
32
36
  # => [:query]
33
37
 
34
- # returns Capybara::Session on success and raises FillError on failure
35
- form.fill_with('ruby')
36
- form.fill_with('rails')
37
- form.fill_with('news')
38
+ # returns Capybara::Session, can call #html etc. on it
39
+ form.fill_with('news') # perform google search for 'news'
40
+ form.fill_with('what is the third planet from the sun')
41
+ form.fill_with('alternatives to gmail')
42
+
43
+ # check if the last form submission succeeded (if success conditions were set)
44
+ form.success?
38
45
  ```
39
46
 
40
47
  ## Contributing
@@ -20,9 +20,12 @@ module Conformity
20
20
 
21
21
  def run
22
22
  case name
23
- when :fill_in then args.last[:with] = field.value
24
- when :choose then args.first = field.value
25
- when :select then args.first = field.value
23
+ when :fill_in
24
+ return unless field.value
25
+ args.last[:with] = field.value
26
+ when :choose, :select
27
+ return unless field.value
28
+ args.first = field.value
26
29
  end if field
27
30
 
28
31
  result = send(name, *args, &block)
@@ -7,13 +7,18 @@ module Conformity
7
7
  def initialize(name, options = {})
8
8
  @name = name
9
9
  @options = options[:options]
10
+ @required = options[:required] || false
11
+ end
12
+
13
+ def required?
14
+ @required
10
15
  end
11
16
 
12
17
  def value
13
18
  if @value
14
19
  @value
15
- else
16
- raise FieldError, "Field '#{name}' not set"
20
+ elsif required?
21
+ raise FieldError, "Required field '#{name}' not set"
17
22
  end
18
23
  end
19
24
  end
@@ -1,3 +1,3 @@
1
1
  module Conformity
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/spec/field_spec.rb CHANGED
@@ -4,17 +4,37 @@ require 'conformity/field'
4
4
  include Conformity
5
5
  describe Conformity::Field do
6
6
  describe '#value' do
7
- it "raises when there's no value" do
8
- field = Field.new(:field)
9
-
10
- expect { field.value }.to raise_error(Conformity::FieldError)
11
- end
12
-
13
7
  it "returns a value when there's a value" do
14
8
  field = Field.new('field')
15
9
  field.value = :value
16
10
 
17
11
  expect(field.value).to equal(:value)
18
12
  end
13
+
14
+ it "raises when there's no value and a field is required" do
15
+ field = Field.new(:field, required: true)
16
+
17
+ expect { field.value }.to raise_error(Conformity::FieldError)
18
+ end
19
+
20
+ it "does not raise when there's no value and a field isn't required" do
21
+ implicit = Field.new(:field)
22
+ explicit = Field.new(:field, required: false)
23
+
24
+ expect { implicit.value }.to_not raise_error
25
+ expect { explicit.value }.to_not raise_error
26
+ end
27
+ end
28
+
29
+ describe "#required?" do
30
+ it "returns true if a field is required" do
31
+ field = Field.new(:field, required: true)
32
+ expect(field.required?).to be_truthy
33
+ end
34
+
35
+ it "returns false if a field is not required" do
36
+ field = Field.new(:field, required: false)
37
+ expect(field.required?).to be_falsey
38
+ end
19
39
  end
20
40
  end
data/spec/form_spec.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  require_relative 'spec_helper'
2
2
  require 'conformity/form'
3
- require 'debugger'
4
3
 
5
4
 
6
5
  describe Conformity::Form do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: conformity
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nikias Kalpaxis