From 8424a9b077f34a745dbc4785e32e67c32dc6002f Mon Sep 17 00:00:00 2001 From: Markus Kahl Date: Fri, 24 Apr 2015 17:45:18 +0100 Subject: [PATCH] regression feature for removing all rates --- spec/features/hourly_rates_feature.rb | 71 +++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 spec/features/hourly_rates_feature.rb diff --git a/spec/features/hourly_rates_feature.rb b/spec/features/hourly_rates_feature.rb new file mode 100644 index 0000000000..635d264726 --- /dev/null +++ b/spec/features/hourly_rates_feature.rb @@ -0,0 +1,71 @@ +#-- copyright +# OpenProject Costs Plugin +# +# Copyright (C) 2009 - 2014 the OpenProject Foundation (OPF) +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#++ + +require File.expand_path(File.dirname(__FILE__) + "/../spec_helper.rb") + +describe 'hourly rates', type: :feature, js: true do + let(:user) { FactoryGirl.create :admin } + + def view_rates + visit edit_user_path(user) + click_on 'Rate History' + end + + before do + allow(User).to receive(:current).and_return user + end + + context 'with no rates' do + before do + view_rates + end + + it 'shows no data message' do + expect(page).to have_text 'No data to display' + end + end + + context 'with rates' do + let!(:rate) { FactoryGirl.create(:default_hourly_rate, user: user) } + + before do + view_rates + end + + it 'shows the rates' do + expect(page).to have_text 'Current rate' + end + + describe 'deleting all rates' do + before do + click_link 'Update' # go to update view for rates + click_on 'Delete' # delete last existing rate + click_on 'Save' # save change + end + + # regression test: clicking save used to result in a error + it 'leads back to the now empty rate overview' do + expect(page).to have_text /rate history/i + expect(page).to have_text 'No data to display' + + expect(page).not_to have_text 'Current rate' + end + end + end +end