Add specs for user changing table
This commit is contained in:
@@ -20,7 +20,7 @@ window.Qwaiter=
|
|||||||
.append('<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>')
|
.append('<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>')
|
||||||
.append('<h3>'+title+'</h3>').appendTo(wrapper)
|
.append('<h3>'+title+'</h3>').appendTo(wrapper)
|
||||||
body = $('<div class="modal-body"></div>').append('<p>'+content+'</p>').appendTo(wrapper)
|
body = $('<div class="modal-body"></div>').append('<p>'+content+'</p>').appendTo(wrapper)
|
||||||
ok_button = $('<a href="#" class="btn btn-primary">Yes</a>')
|
ok_button = $('<a href="#" class="btn btn-primary confirm-ok">Yes</a>')
|
||||||
if typeof(options.ok) == 'function'
|
if typeof(options.ok) == 'function'
|
||||||
ok_button.click(callback_wrapper)
|
ok_button.click(callback_wrapper)
|
||||||
else
|
else
|
||||||
@@ -28,7 +28,7 @@ window.Qwaiter=
|
|||||||
eval(options.ok)
|
eval(options.ok)
|
||||||
wrapper.modal('hide')
|
wrapper.modal('hide')
|
||||||
footer = $('<div class="modal-footer"></div>')
|
footer = $('<div class="modal-footer"></div>')
|
||||||
.append($('<a href="#" class="btn">Close</a>').click(callback_cancel_wrapper))
|
.append($('<a href="#" class="btn confirm-cancel">Close</a>').click(callback_cancel_wrapper))
|
||||||
.append(ok_button)
|
.append(ok_button)
|
||||||
.appendTo(wrapper)
|
.appendTo(wrapper)
|
||||||
wrapper.modal()
|
wrapper.modal()
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ var $translations = {
|
|||||||
cannot_move_to_occupied_table: 'You cannot move to an occupied table',
|
cannot_move_to_occupied_table: 'You cannot move to an occupied table',
|
||||||
moved_to_another_table: 'The table is changed.',
|
moved_to_another_table: 'The table is changed.',
|
||||||
confirmation_title: 'Move to another table?',
|
confirmation_title: 'Move to another table?',
|
||||||
confirmation_body: 'Are you sure you want to move to another table?'
|
confirmation_body: 'Do you want to move to another table?'
|
||||||
},
|
},
|
||||||
models: <%= I18n.t('activemodel.models', locale: :en).to_json %>,
|
models: <%= I18n.t('activemodel.models', locale: :en).to_json %>,
|
||||||
attributes: <%= I18n.t('activemodel.attributes', locale: :en).to_json %>,
|
attributes: <%= I18n.t('activemodel.attributes', locale: :en).to_json %>,
|
||||||
@@ -120,7 +120,7 @@ var $translations = {
|
|||||||
cannot_move_to_occupied_table: 'Je kan niet verhuizen naar een tafel die reeds gebruikt wordt.',
|
cannot_move_to_occupied_table: 'Je kan niet verhuizen naar een tafel die reeds gebruikt wordt.',
|
||||||
moved_to_another_table: 'De tafel is gewijzigd.',
|
moved_to_another_table: 'De tafel is gewijzigd.',
|
||||||
confirmation_title: 'Naar een andere tafel verhuizen?',
|
confirmation_title: 'Naar een andere tafel verhuizen?',
|
||||||
confirmation_body: 'Ben je aan een andere tafel gaan zitten?'
|
confirmation_body: 'Wil je aan een andere tafel gaan zitten?'
|
||||||
},
|
},
|
||||||
models: <%= I18n.t('activemodel.models', locale: :nl).to_json %>,
|
models: <%= I18n.t('activemodel.models', locale: :nl).to_json %>,
|
||||||
attributes: <%= I18n.t('activemodel.attributes', locale: :nl).to_json %>,
|
attributes: <%= I18n.t('activemodel.attributes', locale: :nl).to_json %>,
|
||||||
|
|||||||
@@ -59,6 +59,11 @@ class User
|
|||||||
active_list_id.present?
|
active_list_id.present?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# only used for testing so far
|
||||||
|
def active_list
|
||||||
|
has_active_list? ? List.find(active_list_id) : nil
|
||||||
|
end
|
||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
# Taken from devise 2.2
|
# Taken from devise 2.2
|
||||||
#####################################
|
#####################################
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
Feature: Changing table
|
||||||
|
|
||||||
|
@javascript
|
||||||
|
Scenario: Scanning a table not yet occupied and change to it
|
||||||
|
Given There is an open supplier with a menu
|
||||||
|
And there is a signed in user with an active order
|
||||||
|
And the user is on the homepage
|
||||||
|
And there is another table
|
||||||
|
When the user scans a QR code of another not occupied table
|
||||||
|
Then the user should see a popup asking the user if he would like to change table
|
||||||
|
When the uses indicates in the popup that he wants to change the table
|
||||||
|
And I wait 1 second
|
||||||
|
Then the user should see the supplier menu having the other table as base
|
||||||
|
And the user list should have been moved to the other table
|
||||||
|
|
||||||
|
@javascript
|
||||||
|
Scenario: Scanning a table already occupied
|
||||||
|
Given There is an open supplier with a menu
|
||||||
|
And there is a signed in user with an active order
|
||||||
|
And the user is on the homepage
|
||||||
|
And there is another table with an active list of another user
|
||||||
|
When the user scans a QR code of another occupied table
|
||||||
|
Then the user should see a popup telling him that the table is already occupied
|
||||||
|
And the user list should not have been moved to the other table
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
Feature: Sign up as user using facebook
|
Feature: Sign up as user using facebook
|
||||||
|
Note that facebook is automatically signing in
|
||||||
|
|
||||||
@javascript
|
@javascript
|
||||||
Scenario: Happy flow
|
Scenario: Happy flow
|
||||||
@@ -27,3 +28,5 @@ Feature: Sign up as user using facebook
|
|||||||
And I wait 4 seconds
|
And I wait 4 seconds
|
||||||
Then the newly created user info should be stored in the local storage
|
Then the newly created user info should be stored in the local storage
|
||||||
|
|
||||||
|
Scenario: Facebook problem OmniAuth.config.mock_auth[:facebook] = :invalid_credentials
|
||||||
|
Scenario: Valid facebook login, but declines information requested by scope
|
||||||
|
|||||||
@@ -1,4 +1,8 @@
|
|||||||
step "I am on the user homepage" do
|
step "I am on the user homepage" do
|
||||||
|
step "the user is on the homepage"
|
||||||
|
end
|
||||||
|
|
||||||
|
step "the user is on the homepage" do
|
||||||
visit user_root_path
|
visit user_root_path
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,54 @@
|
|||||||
|
|
||||||
|
step "there is another table" do
|
||||||
|
@other_table = create :table, number: 89, section: @section, supplier: @supplier
|
||||||
|
end
|
||||||
|
|
||||||
|
step "the user scans a QR code of another not occupied table" do
|
||||||
|
page.execute_script "Quser.actions_for_table({table_id: '#{@other_table.id}'})"
|
||||||
|
end
|
||||||
|
|
||||||
|
step "the user should see a popup asking the user if he would like to change table" do
|
||||||
|
move_table_body = page.evaluate_script "t('move_table.confirmation_body')"
|
||||||
|
move_table_body.should be_present
|
||||||
|
page.should have_content move_table_body
|
||||||
|
end
|
||||||
|
|
||||||
|
step "the uses indicates in the popup that he wants to change the table" do
|
||||||
|
find('.confirm-ok').click
|
||||||
|
end
|
||||||
|
|
||||||
|
step "the user should see the supplier menu having the other table as base" do
|
||||||
|
route_should_be 'user#list_products'
|
||||||
|
find('.table-number').text.should == @other_table.number.to_s
|
||||||
|
end
|
||||||
|
|
||||||
|
step "the user list should have been moved to the other table" do
|
||||||
|
@user.active_list.table.should == @other_table
|
||||||
|
@other_table.active_list.should == @user.active_list
|
||||||
|
@table.active_list.should_not be_present
|
||||||
|
end
|
||||||
|
|
||||||
|
step "there is another table with an active list of another user" do
|
||||||
|
step "there is another table"
|
||||||
|
step 'there is another user'
|
||||||
|
@other_user_list = List.from_table @other_table, @other_user
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
step "the user scans a QR code of another occupied table" do
|
||||||
|
# same as not, since this is just a scan action. Whether the table
|
||||||
|
# is occupied is a responsibility of other steps
|
||||||
|
step "the user scans a QR code of another not occupied table"
|
||||||
|
end
|
||||||
|
|
||||||
|
step "the user should see a popup telling him that the table is already occupied" do
|
||||||
|
table_occupied_body = page.evaluate_script "t('messages.table_is_occupied')"
|
||||||
|
table_occupied_body.should be_present
|
||||||
|
page.should have_content table_occupied_body
|
||||||
|
end
|
||||||
|
|
||||||
|
step "the user list should not have been moved to the other table" do
|
||||||
|
@user.active_list.table.should == @table
|
||||||
|
@table.active_list.should == @user.active_list
|
||||||
|
@other_table.active_list.user_ids.should_not include @user.id
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user