Better user specs for joining tables

This commit is contained in:
2013-12-09 10:01:06 +01:00
parent afb30556bd
commit 087cfa639d
15 changed files with 159 additions and 16 deletions
@@ -7,6 +7,13 @@ step "the list is marked as in need of payment" do
@list.needs_payment!
end
step "the user has an active list" do
@list = create :list, supplier: @supplier, table: @table, user_ids: [@user.id]
@user.reload
@user.active_list_id = @list.id
@user.save
end
step "the list should be marked as closed" do
@list.reload
@list.state.should == 'closed'
@@ -22,3 +29,17 @@ end
step "I am signed in as a user" do
step "I visit the user obtain token path"
end
step "the other user should be added to the active list" do
@other_user.reload
@list.reload
@other_user.active_list_id.should == @list.id
@list.user_ids.should =~ [@user.id, @other_user.id]
end
step "the other user should not be added to the active list" do
@other_user.reload
@list.reload
@other_user.active_list_id.should be_nil
@list.user_ids.should == [@user.id]
end
@@ -3,7 +3,20 @@ step "the user scans a table QR code" do
page.execute_script "Quser.actions_for_table({table_id: '#{@table.id}'})"
end
step "another user scans the QR code on the table" do
step 'there is another signed in user user'
visit user_root_path
page.execute_script "Quser.actions_for_table({table_id: '#{@table.id}'})"
end
step 'there is a table' do
step 'there is a section'
@table ||= create :table, section: @section, supplier: @supplier
end
step "the other user should see a join table waiting message" do
#waiting_text = I18n.t('') #TODO: make better user client translation system, similar to supplier
waiting_text = page.evaluate_script(%|t('join_request.requestor.waiting_for_confirmation')|)
page.should have_content waiting_text
end
@@ -10,3 +10,16 @@ step "the user should be redirected to the archived list path" do
route_should_be 'user#history_list'
page.should have_selector ".order-row-#{@order.id}"
end
step 'there is another user' do
@other_user ||= create :user
end
step "the other user clicks the join table button" do
find('.join-table-button').click
end
step "the other user should be redirected to the user menu page" do
Capybara.session_name = :other_user
route_should_be 'user#list_products'
end
@@ -23,6 +23,12 @@ step "I should be signed in as a user through facebook" do
step "the newly created user info should be stored in the local storage"
end
step 'there is another signed in user user' do
Capybara.session_name = :other_user
step 'there is another user'
visit test_login_admin_users_path(email: @other_user.email)
end
step "I should be redirected to the user home" do
page.current_path.should == user_root_path
end
@@ -0,0 +1,29 @@
step "the original user should see a join request message" do
Capybara.session_name = :default
request_text = page.evaluate_script(%|t('join_request.body', {email: '#{@other_user.email}'})|)
request_text.should be_present
page.should have_content request_text
end
step "the original user should not see the join request anymore" do
Capybara.session_name = :default
request_text = page.evaluate_script(%|t('join_request.body', {email: '#{@other_user.email}'})|)
request_text.should be_present
page.should_not have_content request_text
end
step "the original user approves the other user's join request" do
find('.approve-join-request-button').click
end
step "the original user rejects the other user's join request" do
find('.reject-join-request-button').click
end
step "the other user should see a join reject message" do
Capybara.session_name = :other_user
reject_text = I18n.t('messages.join_request_rejected')
reject_text.should be_present
reject_text.should_not include 'translation'
page.should have_content reject_text
end
@@ -15,3 +15,15 @@ step "the user clicks on the user order button" do
find('#active-order-table .btn-primary').click
sleep 1
end
step "the user has an active order" do
step 'there is a section'
step 'there is a table'
step 'the user has an active list'
end
step "there is a signed in user with an active order" do
step "I am signed in as a user"
step "the user has an active order"
end