Skip to content

Commit 87b8014

Browse files
committed
Use FactoryGirl in Subscription model spec
1 parent f205fb6 commit 87b8014

File tree

1 file changed

+14
-16
lines changed

1 file changed

+14
-16
lines changed

spec/models/subscription_spec.rb

+14-16
Original file line numberDiff line numberDiff line change
@@ -19,29 +19,29 @@
1919
context "attributes" do
2020

2121
it "has email" do
22-
expect(Subscription.new(email: "[email protected]")).to have_attributes(email: "[email protected]")
22+
expect(build(:subscription, email: "[email protected]")).to have_attributes(email: "[email protected]")
2323
end
2424

2525
it "has confirmed" do
26-
expect(Subscription.new(confirmed: true)).to have_attributes(confirmed: true)
26+
expect(build(:subscription, confirmed: true)).to have_attributes(confirmed: true)
2727
end
2828

2929
it "has confirmation_token" do
30-
expect(Subscription.new(confirmation_token: "what-a-token")).to have_attributes(confirmation_token: "what-a-token")
30+
expect(build(:subscription, confirmation_token: "what-a-token")).to have_attributes(confirmation_token: "what-a-token")
3131
end
3232

3333
context "start_on" do
3434

3535
it "is an attribute" do
3636
today = Date.today
37-
expect(Subscription.new(start_on: Date.today)).to have_attributes(start_on: today)
37+
expect(build(:subscription, start_on: Date.today)).to have_attributes(start_on: today)
3838
end
3939

4040
it "defaults to today" do
4141
now = Time.zone.now
4242
today = now.to_date
4343
travel_to now do
44-
expect(Subscription.new.start_on).to eq(today)
44+
expect(build(:subscription).start_on).to eq(today)
4545
end
4646
end
4747

@@ -51,28 +51,26 @@
5151

5252
context "validation" do
5353

54-
before do
55-
@subscription = Subscription.new(confirmation_token: "token", email: "[email protected]")
56-
end
54+
let(:subscription) { build(:subscription, confirmation_token: "token", email: "[email protected]") }
5755

5856
it "requires unique email" do
59-
expect(@subscription).to validate_uniqueness_of(:email)
57+
expect(subscription).to validate_uniqueness_of(:email)
6058
end
6159

6260
it "requires email" do
63-
expect(@subscription).to validate_presence_of(:email)
61+
expect(subscription).to validate_presence_of(:email)
6462
end
6563

6664
it "requires confirmation_token" do
67-
expect(@subscription).to validate_presence_of(:confirmation_token)
65+
expect(subscription).to validate_presence_of(:confirmation_token)
6866
end
6967

7068
it "requires unique confirmation_token" do
71-
expect(@subscription).to validate_uniqueness_of(:confirmation_token)
69+
expect(subscription).to validate_uniqueness_of(:confirmation_token)
7270
end
7371

7472
it "requires start_on" do
75-
expect(@subscription).to validate_presence_of(:start_on)
73+
expect(subscription).to validate_presence_of(:start_on)
7674
end
7775
end
7876

@@ -109,7 +107,7 @@
109107
describe "#to_param" do
110108

111109
it "uses confirmation_token as the default identifier for routes" do
112-
subscription = Subscription.new(confirmation_token: "hello-im-a-token-123")
110+
subscription = build(:subscription, confirmation_token: "hello-im-a-token-123")
113111
expect(subscription.to_param).to eq("hello-im-a-token-123")
114112
end
115113

@@ -191,7 +189,7 @@
191189

192190
it "confirms the subscription matching the confirmation_token" do
193191
token = Subscription.generate_confirmation_token
194-
subscription = Subscription.create!(
192+
subscription = create(:subscription,
195193
196194
confirmation_token: token
197195
)
@@ -205,7 +203,7 @@
205203
end
206204

207205
it "gracefully handles confirming an already confirmed subscription" do
208-
subscription = Subscription.create!(
206+
subscription = create(:subscription,
209207
210208
confirmation_token: "xyz"
211209
)

0 commit comments

Comments
 (0)