smarter testing

This commit is contained in:
2015-08-07 12:44:11 +02:00
parent 74ba0dd27d
commit 3aef45a94e
5 changed files with 37 additions and 6 deletions
@@ -11,7 +11,9 @@ if list.closed_at
=state 'list' list.state =state 'list' list.state
.display-row .display-row
.display-label   .display-label  
.display-field= button-close-list content=list .display-field
= button-mark-list-helped content=list
= button-close-list content=list
.user-info-container .user-info-container
each user in list.users each user in list.users
=user.avatar_tag =user.avatar_tag
@@ -112,7 +112,7 @@ header.top-menu
.supplier-availability .supplier-availability
border: 2px solid #555 border: 2px solid #555
border-radius: 4px border-radius: 4px
padding: 5px 3px padding: 2px 5px
font-weight: bold font-weight: bold
font-size: 0.9em font-size: 0.9em
float: right float: right
@@ -120,6 +120,6 @@ header.top-menu
text-transform: uppercase text-transform: uppercase
margin-top: 10px margin-top: 10px
&.currently-open &.currently-open
color: #5f5 color: #3c3
&.currently-closed &.currently-closed
color: #f55 color: #f55
@@ -156,8 +156,7 @@ step "the supplier main board list total should be updated" do
end end
step "the supplier placed orders counter should be reduced" do step "the supplier placed orders counter should be reduced" do
sleep 0.8 expect_that_eventually selector: '.supplier-orders-placed-count-number', has_text: "10"
find('.supplier-orders-placed-count-number').text.should == "10"
end end
step "confirm the supplier close list modal" do step "confirm the supplier close list modal" do
+1 -1
View File
@@ -139,7 +139,7 @@ RSpec.configure do |config|
# Use color in STDOUT # Use color in STDOUT
config.color = true config.color = true
config.fail_fast = true config.fail_fast = false
# Use color not only in STDOUT but also in pagers and files # Use color not only in STDOUT but also in pagers and files
config.tty = true config.tty = true
+30
View File
@@ -27,6 +27,36 @@ module SpecEmberHelpers
classes.should include class_name classes.should include class_name
end end
# expect_that_eventually selector: '.supplier-orders-placed-count-number', has_text: "10"
def expect_that_eventually(options = {})
selector = options[:selector] or raise "An argument selector: '.my-selector' is required"
time = 0
expected_value, value_method = case options
when ->(h){ h.has_key? :has_text } then [options[:has_text], 'text()']
when ->(h){ h.has_key? :has_value } then [options[:has_value], 'val()']
else
raise "No matcher can be found, possible matchers: :has_text, ..."
end
current_value = page.evaluate_script("$('#{selector}').#{value_method}")
while current_value != expected_value and time < 30
sleep 0.1
current_value = page.evaluate_script("$('#{selector}').text()")
time += 1
end
#current_value.should eq expected_text
#if expected_text = options[:has_text]
#current_value = page.evaluate_script("$('#{selector}').#{value_method}")
#while current_text != expected_text and time < 30
#sleep 0.1
#current_text = page.evaluate_script("$('#{selector}').text()")
#time += 1
#end
#current_text.should eq expected_text
#else
#raise "No matcher can be found, possible matchers: :has_text, ..."
#end
end
def js_set_field(selector, value) def js_set_field(selector, value)
find selector find selector
page.execute_script("$('#{selector}').val('#{value}').trigger('change')") page.execute_script("$('#{selector}').val('#{value}').trigger('change')")