45 lines
1.2 KiB
Ruby
45 lines
1.2 KiB
Ruby
|
require 'spec_helper'
|
||
|
|
||
|
describe Article do
|
||
|
let(:supplier) { FactoryGirl.create :supplier }
|
||
|
let(:article) { FactoryGirl.create :article, supplier: supplier }
|
||
|
|
||
|
it 'has a unique name' do
|
||
|
article2 = FactoryGirl.build :article, supplier: supplier, name: article.name
|
||
|
article2.should_not be_valid
|
||
|
end
|
||
|
|
||
|
it 'computes the gross price correctly' do
|
||
|
article.deposit = 0
|
||
|
article.tax = 12
|
||
|
article.gross_price.should == (article.price * 1.12).round(2)
|
||
|
article.deposit = 1.20
|
||
|
article.gross_price.should == ((article.price + 1.20) * 1.12).round(2)
|
||
|
end
|
||
|
|
||
|
it 'gross price >= net price' do
|
||
|
article.gross_price.should >= article.price
|
||
|
end
|
||
|
|
||
|
it 'fc-price > gross price' do
|
||
|
article.fc_price.should > article.gross_price
|
||
|
end
|
||
|
|
||
|
it 'knows when it is deleted' do
|
||
|
supplier.deleted?.should be_false
|
||
|
supplier.mark_as_deleted
|
||
|
supplier.deleted?.should be_true
|
||
|
end
|
||
|
|
||
|
it 'keeps a price history' do
|
||
|
article.article_prices.count.should == 1
|
||
|
oldprice = article.price
|
||
|
article.price += 1
|
||
|
article.save!
|
||
|
article.article_prices.count.should == 2
|
||
|
article.article_prices[0].price.should == article.price
|
||
|
article.article_prices[-1].price.should == oldprice
|
||
|
end
|
||
|
|
||
|
end
|