spec/models/refinery/inquiries/inquiry_spec.rb in refinerycms-inquiries-2.1.0 vs spec/models/refinery/inquiries/inquiry_spec.rb in refinerycms-inquiries-3.0.0

- old
+ new

@@ -1,50 +1,92 @@ require 'spec_helper' module Refinery module Inquiries - describe Inquiry do + describe Inquiry, :type => :model do describe "validations" do subject do - FactoryGirl.build(:inquiry, - :name => "Ugis Ozols", - :email => "ugis.ozols@refinerycms.com", - :message => "Hey, I'm testing!") + FactoryGirl.build(:inquiry, { + name: "Ugis Ozols", + email: "ugis.ozols@example.com", + message: "Hey, I'm testing!" + }) end - it { should be_valid } - its(:errors) { should be_empty } - its(:name) { should == "Ugis Ozols" } - its(:email) { should == "ugis.ozols@refinerycms.com" } - its(:message) { should == "Hey, I'm testing!" } + it { is_expected.to be_valid } + + describe '#errors' do + subject { super().errors } + it { is_expected.to be_empty } + end + + describe '#name' do + subject { super().name } + it { is_expected.to eq("Ugis Ozols") } + end + + describe '#email' do + subject { super().email } + it { is_expected.to eq("ugis.ozols@example.com") } + end + + describe '#message' do + subject { super().message } + it { is_expected.to eq("Hey, I'm testing!") } + end + + it "validates name length" do + expect(FactoryGirl.build(:inquiry, { + name: "a"*255, + email: "ugis.ozols@example.com", + message: "This Text Is OK" + })).to be_valid + expect(FactoryGirl.build(:inquiry, { + name: "a"*256, + email: "ugis.ozols@example.com", + message: "This Text Is OK" + })).not_to be_valid + end + it "validates email length" do + expect(FactoryGirl.build(:inquiry, { + name: "Ugis Ozols", + email: "a"*243 + "@example.com", + message: "This Text Is OK" + })).to be_valid + expect(FactoryGirl.build(:inquiry, { + name: "Ugis Ozols", + email: "a"*244 + "@example.com", + message: "This Text Is OK" + })).not_to be_valid + end end describe "default scope" do it "orders by created_at in desc" do - inquiry1 = FactoryGirl.create(:inquiry, :created_at => 1.hour.ago) - inquiry2 = FactoryGirl.create(:inquiry, :created_at => 2.hours.ago) - inquiries = Refinery::Inquiries::Inquiry.all - inquiries.first.should == inquiry1 - inquiries.second.should == inquiry2 + inquiry1 = FactoryGirl.create(:inquiry, created_at: 1.hour.ago) + inquiry2 = FactoryGirl.create(:inquiry, created_at: 2.hours.ago) + inquiries = Inquiry.all + expect(inquiries.first).to eq(inquiry1) + expect(inquiries.second).to eq(inquiry2) end end describe ".latest" do it "returns latest 7 non-spam inquiries by default" do 8.times { FactoryGirl.create(:inquiry) } - Refinery::Inquiries::Inquiry.last.toggle!(:spam) - Refinery::Inquiries::Inquiry.latest.length.should == 7 + Inquiry.last.toggle!(:spam) + expect(Inquiry.latest.length).to eq(7) end it "returns latest 7 inquiries including spam ones" do 7.times { FactoryGirl.create(:inquiry) } - Refinery::Inquiries::Inquiry.all[0..2].each { |inquiry| inquiry.toggle!(:spam) } - Refinery::Inquiries::Inquiry.latest(7, true).length.should == 7 + Inquiry.all[0..2].each { |inquiry| inquiry.toggle!(:spam) } + expect(Inquiry.latest(7, true).length).to eq(7) end it "returns latest n inquiries" do 4.times { FactoryGirl.create(:inquiry) } - Refinery::Inquiries::Inquiry.latest(3).length.should == 3 + expect(Inquiry.latest(3).length).to eq(3) end end end end end