Commit d8d61b9

mo khan <mo@mokhan.ca>
2015-02-28 19:40:27
add validations to item model.
1 parent 2346980
Changed files (3)
app/models/item.rb
@@ -1,3 +1,5 @@
 class Item < ActiveRecord::Base
   belongs_to :user
+
+  validates_presence_of :user, :name
 end
app/models/user.rb
@@ -6,11 +6,10 @@ class User < ActiveRecord::Base
   validates :username, presence: true, format: { with: USERNAME_REGEX }, uniqueness: true
   validates :email, presence: true, email: true, uniqueness: true
   validates_acceptance_of :terms_and_conditions
-  
+
   def self.authenticate(username,password)
     if user = User.where("email = :email OR username = :username", username: username, email: username).first
       user.authenticate(password)
     end
   end
-  
 end
spec/models/item_spec.rb
@@ -1,4 +1,19 @@
-require 'rails_helper'
+require "rails_helper"
 
 RSpec.describe Item, type: :model do
+  describe "validations" do
+    let(:user) { create(:user) }
+
+    it "validates the presence of a user" do
+      item = build(:item, user: nil)
+      expect(item).to_not be_valid
+      expect(item.errors[:user]).to_not be_empty
+    end
+
+    it "validates the presence of a name" do
+      item = build(:item, user: user, name: nil)
+      expect(item).to_not be_valid
+      expect(item.errors[:name]).to_not be_empty
+    end
+  end
 end