From 3aef45a94e9136e51e4bb0d5caf5699777017d32 Mon Sep 17 00:00:00 2001 From: Benjamin ter Kuile Date: Fri, 7 Aug 2015 12:44:11 +0200 Subject: [PATCH] smarter testing --- .../app/templates/_list_content.emblem | 4 ++- .../foundation1/components/_nav_main.sass | 4 +-- .../suppliers/dashboard_steps.rb | 3 +- spec/spec_helper.rb | 2 +- spec/support/ember_helpers.rb | 30 +++++++++++++++++++ 5 files changed, 37 insertions(+), 6 deletions(-) diff --git a/app/assets/javascripts/supplier/app/templates/_list_content.emblem b/app/assets/javascripts/supplier/app/templates/_list_content.emblem index c12dc249..bc1eb998 100644 --- a/app/assets/javascripts/supplier/app/templates/_list_content.emblem +++ b/app/assets/javascripts/supplier/app/templates/_list_content.emblem @@ -11,7 +11,9 @@ if list.closed_at =state 'list' list.state .display-row .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 each user in list.users =user.avatar_tag diff --git a/app/assets/stylesheets/supplier/foundation1/components/_nav_main.sass b/app/assets/stylesheets/supplier/foundation1/components/_nav_main.sass index a64d6a79..f65e7855 100644 --- a/app/assets/stylesheets/supplier/foundation1/components/_nav_main.sass +++ b/app/assets/stylesheets/supplier/foundation1/components/_nav_main.sass @@ -112,7 +112,7 @@ header.top-menu .supplier-availability border: 2px solid #555 border-radius: 4px - padding: 5px 3px + padding: 2px 5px font-weight: bold font-size: 0.9em float: right @@ -120,6 +120,6 @@ header.top-menu text-transform: uppercase margin-top: 10px &.currently-open - color: #5f5 + color: #3c3 &.currently-closed color: #f55 diff --git a/spec/acceptance_steps/suppliers/dashboard_steps.rb b/spec/acceptance_steps/suppliers/dashboard_steps.rb index 895210a6..d9709f93 100644 --- a/spec/acceptance_steps/suppliers/dashboard_steps.rb +++ b/spec/acceptance_steps/suppliers/dashboard_steps.rb @@ -156,8 +156,7 @@ step "the supplier main board list total should be updated" do end step "the supplier placed orders counter should be reduced" do - sleep 0.8 - find('.supplier-orders-placed-count-number').text.should == "10" + expect_that_eventually selector: '.supplier-orders-placed-count-number', has_text: "10" end step "confirm the supplier close list modal" do diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 009da96a..7bd33aec 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -139,7 +139,7 @@ RSpec.configure do |config| # Use color in STDOUT config.color = true - config.fail_fast = true + config.fail_fast = false # Use color not only in STDOUT but also in pagers and files config.tty = true diff --git a/spec/support/ember_helpers.rb b/spec/support/ember_helpers.rb index 86d374c1..8ca6c770 100644 --- a/spec/support/ember_helpers.rb +++ b/spec/support/ember_helpers.rb @@ -27,6 +27,36 @@ module SpecEmberHelpers classes.should include class_name 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) find selector page.execute_script("$('#{selector}').val('#{value}').trigger('change')")