Commit f60ca93a

luu <luuduong@gmail.com>
2014-12-06 15:21:37
add validation for asin and valid tool.
1 parent ad658c4
Changed files (3)
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