75 lines
2.2 KiB
Ruby
75 lines
2.2 KiB
Ruby
# encoding: UTF-8
|
|
|
|
require 'spec_helper'
|
|
|
|
describe Table do
|
|
let(:supplier){ create(:supplier) }
|
|
describe 'for_supplier' do
|
|
let(:options){ Hash.new }
|
|
subject{ Table.for_supplier(supplier, options) }
|
|
it "should return an empty array by default" do
|
|
subject.should be_empty
|
|
end
|
|
describe 'with multiple tables' do
|
|
before do
|
|
@table1 = create :table, supplier: supplier, number: 2
|
|
@table2 = create :table, supplier: supplier, number: 4
|
|
@table3 = create :table, supplier: supplier, number: 6
|
|
@table4 = create :table, number: 4
|
|
end
|
|
it "returns all by default" do
|
|
subject.should == [@table1, @table2, @table3]
|
|
end
|
|
|
|
it "should paginate the result" do
|
|
options[:per_page] = 2
|
|
subject.size.should == 2
|
|
subject.total_count.should == 3
|
|
end
|
|
|
|
it "should filter by table number using from_number" do
|
|
options[:per_page] = 1
|
|
options[:from_number] = 3
|
|
subject.size.should == 1
|
|
subject.total_pages.should == 2
|
|
subject.first.number.should == 4
|
|
|
|
end
|
|
it "should filter by table number using from_number and to_number" do
|
|
options[:from_number] = 3
|
|
options[:to_number] = 5
|
|
subject.size.should == 1
|
|
subject.total_pages.should == 1
|
|
subject.first.number.should == 4
|
|
|
|
end
|
|
end
|
|
end
|
|
|
|
describe 'enrich_active_list_id' do
|
|
before do
|
|
@table1 = create :table, supplier: supplier, number: 2
|
|
@list = create :list, supplier: supplier, table: @table1, state: 'active'
|
|
end
|
|
|
|
# False passes can be possible when list is not valid
|
|
it 'has created a list' do
|
|
@list.id.should be_present
|
|
end
|
|
|
|
it 'enriches active_list_id using a single object' do
|
|
Table.enrich_active_list_id(@table1).active_list_id.should == @list.id
|
|
end
|
|
|
|
it 'enriches active_list_id using an array' do
|
|
Table.enrich_active_list_id([@table1]).first.active_list_id.should == @list.id
|
|
end
|
|
|
|
it "does not enrich non active lists" do
|
|
@list.update_attributes(state: 'closed')
|
|
Table.enrich_active_list_id([@table1]).first.active_list_id.should be_nil
|
|
end
|
|
end
|
|
|
|
end
|