Allow to specify an order schedule for new orders.
This commit is contained in:
parent
6e990fed4c
commit
219eb71bc9
16 changed files with 204 additions and 8 deletions
61
spec/integration/order_spec.rb
Normal file
61
spec/integration/order_spec.rb
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
require_relative '../spec_helper'
|
||||
|
||||
describe Order, type: :feature do
|
||||
let(:admin) { create :user, groups:[create(:workgroup, role_orders: true)] }
|
||||
let(:article) { create :article, unit_quantity: 1 }
|
||||
let(:order) { create :order, supplier: article.supplier, article_ids: [article.id] } # need to ref article
|
||||
let(:go1) { create :group_order, order: order }
|
||||
let(:oa) { order.order_articles.find_by_article_id(article.id) }
|
||||
let(:goa1) { create :group_order_article, group_order: go1, order_article: oa }
|
||||
|
||||
describe type: :feature, js: true do
|
||||
before { login admin }
|
||||
|
||||
it 'can get to the new order page' do
|
||||
article.supplier
|
||||
visit orders_path
|
||||
click_link_or_button I18n.t('orders.index.new_order')
|
||||
click_link_or_button order.name
|
||||
expect(page).to have_text I18n.t('orders.new.title')
|
||||
expect(page).to have_text article.name
|
||||
end
|
||||
|
||||
it 'fills in the end date with a schedule' do
|
||||
FoodsoftConfig[:time_zone] = 'UTC'
|
||||
FoodsoftConfig[:order_schedule] = {ends: {recurr: 'FREQ=MONTHLY;BYMONTHDAY=1', time: '12:00'}}
|
||||
visit new_order_path(supplier_id: article.supplier.id)
|
||||
expect(page).to have_text I18n.t('orders.new.title')
|
||||
expect(find_field('order_ends_time_value').value).to eq '12:00'
|
||||
expect(find_field('order_ends_date_value').value).to eq Date.today.next_month.at_beginning_of_month.strftime('%Y-%m-%d')
|
||||
end
|
||||
|
||||
it 'can create a new order' do
|
||||
visit new_order_path(supplier_id: article.supplier.id)
|
||||
expect(page).to have_text I18n.t('orders.new.title')
|
||||
find('input[type="submit"]').click
|
||||
expect(Order.count).to eq 1
|
||||
expect(Order.first.supplier).to eq article.supplier
|
||||
end
|
||||
|
||||
it 'can close an order' do
|
||||
setup_and_close_order
|
||||
expect(order).to be_finished
|
||||
expect(page).to_not have_link I18n.t('orders.index.action_end')
|
||||
expect(oa.units_to_order).to eq 1
|
||||
end
|
||||
end
|
||||
|
||||
def setup_and_close_order
|
||||
# have at least something ordered
|
||||
goa1.update_quantities 1, 0
|
||||
oa.update_results!
|
||||
# and close the order
|
||||
visit orders_path
|
||||
click_link_or_button I18n.t('orders.index.action_end')
|
||||
accept_alert
|
||||
sleep 0.8
|
||||
order.reload
|
||||
oa.reload
|
||||
end
|
||||
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue