master
 1require "rails_helper"
 2
 3
 4describe Tool do 
 5  
 6  it "has a name" do 
 7    tool = Tool.new 
 8    tool.name = "wilton pan"
 9    expect(tool.name).to eql("wilton pan")
10  end
11
12  it "has a description" do
13    tool = Tool.new
14    tool.description = "This pan can be used to make round cakes"
15    expect(tool.description).to eql("This pan can be used to make round cakes")
16  end
17
18  it "has an ASIN" do
19    tool = Tool.new
20    tool.asin = "223455"
21    expect(tool.asin).to eql("223455")
22  end
23
24  it "saves to the database" do
25    tool = Tool.new
26    tool.asin = "223455"
27    tool.description = "This pan can be used to make round cakes"
28    tool.name = "wilton pan"
29    tool.save
30    tool.reload
31    expect(tool.name).to eql("wilton pan")
32    expect(tool.description).to eql("This pan can be used to make round cakes")
33    expect(tool.asin).to eql("223455")
34  end
35
36  context "#validation" do
37    let(:tool) { build(:tool) }
38
39    it "has to have a name" do
40      tool.name = nil
41      expect(tool).to_not be_valid
42      expect(tool.errors[:name]).to_not be_empty
43    end
44
45    it "name has to be unique" do 
46      create(:tool, name: 'blah')
47      tool.name = 'blah'
48      
49      expect(tool).to_not be_valid
50      expect(tool.errors[:name]).to_not be_empty
51    end
52
53    it "has a ASIN number" do
54      tool.asin = nil
55      expect(tool).to_not be_valid
56      expect(tool.errors[:asin]).to_not be_empty
57    end
58
59    it "validates" do
60      expect(tool).to be_valid
61    end
62  end
63end