Commit f60ca93a
Changed files (3)
app
models
spec
models
app/models/tool.rb
@@ -1,3 +1,4 @@
class Tool < ActiveRecord::Base
validates :name, presence: true, uniqueness: true
+ validates :asin, presence: true
end
\ No newline at end of file
spec/models/tool_spec.rb
@@ -34,18 +34,30 @@ describe Tool do
end
context "#validation" do
+ let(:tool) { build(:tool) }
+
it "has to have a name" do
- tool = Tool.new
+ tool.name = nil
expect(tool).to_not be_valid
expect(tool.errors[:name]).to_not be_empty
end
it "name has to be unique" do
- Tool.create(name: 'blah')
-
- tool = Tool.new(name: 'blah')
- tool.valid?
+ create(:tool, name: 'blah')
+ tool.name = 'blah'
+
+ expect(tool).to_not be_valid
expect(tool.errors[:name]).to_not be_empty
end
+
+ it "has a ASIN number" do
+ tool.asin = nil
+ expect(tool).to_not be_valid
+ expect(tool.errors[:asin]).to_not be_empty
+ end
+
+ it "validates" do
+ expect(tool).to be_valid
+ end
end
end
spec/factories.rb
@@ -76,4 +76,9 @@ FactoryGirl.define do
city "Calgary"
country "Canada"
end
-end
+
+ factory :tool do
+ name { Faker::Name.name }
+ asin { SecureRandom.uuid }
+ end
+end
\ No newline at end of file