Skip to content

Commit 1d0d10c

Browse files
committed
FIxes errors on Achievement Controller Spec with Achievements creation.
1 parent 0506935 commit 1d0d10c

File tree

2 files changed

+15
-33
lines changed

2 files changed

+15
-33
lines changed

spec/controllers/achievements_controller_spec.rb

Lines changed: 14 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,23 @@
33
describe AchievementsController do
44

55
shared_examples 'public access to achievements' do
6+
let(:user) {FactoryGirl.create(:user)}
67
describe 'GET index' do
78
it 'renders :index template' do
89
get :index
910
expect(response).to render_template(:index)
1011
end
1112

1213
it 'assigns only public achievements to template' do
13-
public_achievement = FactoryGirl.create(:public_achievement)
14+
public_achievement = FactoryGirl.create(:public_achievement, user: user)
15+
private_achievement = FactoryGirl.create(:private_achievement, user: user)
1416
get :index
1517
expect(assigns(:achievements)).to match_array([public_achievement])
1618
end
1719
end
1820

1921
describe 'GET show' do
20-
let(:achievement) {FactoryGirl.create(:public_achievement)}
22+
let(:achievement) {FactoryGirl.create(:public_achievement, user: user)}
2123

2224
it 'renders :show template' do
2325
get :show, params: {id: achievement}
@@ -51,32 +53,6 @@
5153
end
5254
end
5355

54-
describe 'GET edit' do
55-
it 'redirects to login page' do
56-
get :edit, params: {id: FactoryGirl.create(:public_achievement)}
57-
expect(response).to redirect_to(new_user_session_url)
58-
end
59-
end
60-
61-
describe 'PUT update' do
62-
let(:achievement) {FactoryGirl.create(:public_achievement)}
63-
let(:valid_data) {FactoryGirl.attributes_for(:public_achievement, title: 'New Title')}
64-
65-
it 'redirects to login page' do
66-
put :update, params: {id: achievement, achievement: valid_data}
67-
expect(response).to redirect_to(new_user_session_url)
68-
end
69-
end
70-
71-
describe 'DELETE destroy' do
72-
let(:achievement) {FactoryGirl.create(:public_achievement)}
73-
74-
it 'redirects to login page' do
75-
delete :destroy, params: {id: achievement}
76-
expect(response).to redirect_to(new_user_session_url)
77-
end
78-
end
79-
8056
end
8157

8258
describe 'authenticated_user' do
@@ -103,7 +79,7 @@
10379

10480
describe 'POST create' do
10581
context 'valid data' do
106-
let(:valid_data) {FactoryGirl.attributes_for(:public_achievement)}
82+
let(:valid_data) {FactoryGirl.attributes_for(:public_achievement, user: user)}
10783
it 'redirect to achievement#show' do
10884
post :create, params: {achievement: valid_data}
10985
expect(response).to redirect_to(achievement_path(assigns[:achievement]))
@@ -133,15 +109,21 @@
133109
end
134110

135111
context 'is not the owner of the achievement' do
112+
let(:user) {FactoryGirl.create(:user)}
113+
let(:author) {FactoryGirl.create(:user)}
114+
let(:achievement) {FactoryGirl.create(:public_achievement, user: author)}
115+
116+
before {sign_in(user)}
117+
136118
describe 'GET edit' do
137119
it 'redirects to achievement page' do
138-
get :edit, params: {id: FactoryGirl.create(:public_achievement)}
120+
get :edit, params: {id: achievement.id}
139121
expect(response).to redirect_to(achievements_path)
140122
end
141123
end
142124

143125
describe 'PUT update' do
144-
let(:achievement) {FactoryGirl.create(:public_achievement)}
126+
let(:achievement) {FactoryGirl.create(:public_achievement, user: author)}
145127
let(:valid_data) {FactoryGirl.attributes_for(:public_achievement, title: 'New Title')}
146128

147129
it 'redirects to achievement page' do
@@ -151,7 +133,7 @@
151133
end
152134

153135
describe 'DELETE destroy' do
154-
let(:achievement) {FactoryGirl.create(:public_achievement,)}
136+
let(:achievement) {FactoryGirl.create(:public_achievement, user: user)}
155137

156138
it 'redirects to achievement page' do
157139
delete :destroy, params: {id: achievement}

spec/mailers/user_mailer_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
require 'rails_helper'
22

33
RSpec.describe UserMailer, type: :mailer do
4-
4+
55
include Rails.application.routes.url_helpers
66

77
let(:achievement_id) {1}

0 commit comments

Comments
 (0)