Skip to content

Commit 9090a76

Browse files
unasukeamatsuda
authored andcommitted
Fix skipped specs by wrong factory callbacks
teammate didn't save correctly
1 parent 61d0639 commit 9090a76

21 files changed

+33
-76
lines changed

spec/controllers/proposals_controller_spec.rb

+1-3
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,7 @@
107107
end
108108

109109
it "sends an in-app notification to reviewers" do
110-
skip("Rating not recognized as a proposal.reviewer and I haven't figured out how to make FactoryBot happy")
111-
create(:rating, proposal: proposal, user: create(:organizer))
110+
create(:rating, proposal: proposal, user: create(:reviewer, event: event))
112111
expect {
113112
post :withdraw, params: {event_slug: event.slug, uuid: proposal.uuid}
114113
}.to change { Notification.count }.by(1)
@@ -157,7 +156,6 @@
157156
end
158157

159158
it "sends a notifications to an organizer" do
160-
skip("Rating not recognized as a proposal.reviewer and I haven't figured out how to make FactoryBot happy")
161159
proposal.update(title: 'orig_title', pitch: 'orig_pitch')
162160
organizer = create(:organizer, event: proposal.event)
163161
create(:rating, proposal: proposal, user: organizer)

spec/controllers/staff/grids/time_slots_controller_spec.rb

+1-3
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22

33
describe Staff::Grids::TimeSlotsController, type: :controller do
44
let(:event) { create(:event) }
5-
let(:proposal) { create(:proposal_with_track) }
5+
let(:proposal) { create(:proposal_with_track, event: event) }
66
before { sign_in(create(:organizer, event: event)) }
77

88
describe "PUT 'update'" do
99
it "can update a time slot with ajax" do
10-
skip "FactoryBot 😤"
1110
conf_time_slot = create(:time_slot, conference_day: 3, event: event)
1211
put :update, xhr: true, params: {id: conf_time_slot, event_slug: conf_time_slot.event,
1312
time_slot: { conference_day: 5 }}, format: :json
@@ -18,7 +17,6 @@
1817
end
1918

2019
it "can set the program session" do
21-
skip "FactoryBot 😤"
2220
program_session = create(:program_session, event: event, proposal: proposal, track: proposal.track)
2321
conf_time_slot = create(:time_slot, event: program_session.event)
2422
put :update, xhr: true, params: {id: conf_time_slot, event_slug: conf_time_slot.event,

spec/controllers/staff/proposals_controller_spec.rb

+1-2
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,7 @@
7373
end
7474

7575
it "sends appropriate emails" do
76-
skip "Record not found -- need to figure out the factory magic here"
77-
proposal = create(:proposal_with_track, state: Proposal::State::SOFT_ACCEPTED)
76+
proposal = create(:proposal_with_track, event: event, state: Proposal::State::SOFT_ACCEPTED)
7877
mail = double(:mail, deliver_now: nil)
7978
expect(Staff::ProposalMailer).to receive('send_email').and_return(mail)
8079
post :finalize, params: {event_slug: event, proposal_uuid: proposal.uuid}

spec/controllers/staff/rooms_controller_spec.rb

-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
describe "DELETE 'destroy'" do
88
it "destroys the room with ajax" do
9-
skip "FactoryBot 😤"
109
room = create(:room, event: event)
1110
expect {
1211
delete :destroy, xhr: true, params: {id: room, event_slug: event}

spec/controllers/staff/time_slots_controller_spec.rb

-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
describe "DELETE 'destroy'" do
88
it "destroys the time slot" do
9-
skip "FactoryBot 😤"
109
conf_time_slot = create(:time_slot, event: event)
1110
expect {
1211
delete :destroy, xhr: true, params: {id: conf_time_slot, event_slug: conf_time_slot.event}
@@ -16,7 +15,6 @@
1615

1716
describe "PUT 'update'" do
1817
it "can update a time slot with ajax" do
19-
skip "FactoryBot 😤"
2018
conf_time_slot = create(:time_slot, conference_day: 3, event: event)
2119
put :update, xhr: true, params: {id: conf_time_slot, event_slug: conf_time_slot.event,
2220
time_slot: { conference_day: 5 }}
@@ -25,7 +23,6 @@
2523
end
2624

2725
it "can set the program session" do
28-
skip "FactoryBot 😤"
2926
program_session = create(:program_session, event: event)
3027
conf_time_slot = create(:time_slot, event: program_session.event)
3128
put :update, xhr: true, params: {id: conf_time_slot, event_slug: conf_time_slot.event,

spec/factories/proposals.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
trait :with_reviewer_public_comment do
2121
after(:create) do |proposal|
22-
reviewer = FactoryBot.create(:user, :reviewer)
22+
reviewer = FactoryBot.create(:reviewer, event: proposal.event)
2323
FactoryBot.create(:comment, proposal: proposal, type: "PublicComment", user: reviewer, body: "Reviewer comment" )
2424
end
2525
end

spec/factories/users.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
after(:create) do |user, evaluator|
4949
teammate = user.organizer_teammates.first
5050
teammate.event = evaluator.event
51-
teammate.event.save
51+
teammate.save
5252
end
5353
end
5454

@@ -60,7 +60,7 @@
6060
after(:create) do |user, evaluator|
6161
teammate = user.reviewer_teammates.first
6262
teammate.event = evaluator.event
63-
teammate.event.save
63+
teammate.save
6464
end
6565
end
6666

spec/features/staff/sponsor_spec.rb

-2
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@
5050
end
5151

5252
it 'can delete an event sponsor', js: true do
53-
skip "FactoryBot 😤"
5453
sponsor = create(:sponsor, event: event)
5554
visit edit_event_staff_sponsor_path(event, sponsor)
5655

@@ -60,7 +59,6 @@
6059
end
6160

6261
it 'sponsons are listed in tier order on the index page' do
63-
skip "FactoryBot 😤"
6462
Sponsor::TIERS.each { |tier| create(:sponsor, tier: tier) }
6563
visit event_staff_sponsors_path(event)
6664

spec/features/website/configuration_spec.rb

-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
let(:organizer) { create(:organizer, event: event) }
77

88
scenario "Organizer creates a new website for event" do
9-
skip "FactoryBot 😤"
109
login_as(organizer)
1110

1211
visit event_path(event)
@@ -18,7 +17,6 @@
1817
end
1918

2019
scenario "Organizer configures domain for an existing website for event", :js do
21-
skip "FactoryBot 😤"
2220
website = create(:website, event: event)
2321
home_page = create(:page, website: website)
2422

@@ -50,7 +48,6 @@
5048
end
5149

5250
scenario "Organizer fails to add font file correctly", :js do
53-
skip "FactoryBot 😤"
5451
website = create(:website, event: event)
5552

5653
login_as(organizer)

spec/features/website/program_spec.rb

+5-9
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,15 @@
66
let!(:website) { create(:website, event: event) }
77

88
scenario "A program session is on the program session page", js: true do
9-
skip "FactoryBot 😤"
10-
regular_session = create(:regular_session)
9+
regular_session = create(:regular_session, event: event)
1110

1211
visit program_path(event)
1312
expect(page).to have_content(regular_session.title)
1413
end
1514

1615
scenario "the website program page displays sessions under the correct session format", js: true do
17-
skip "FactoryBot 😤"
18-
regular_session = create(:regular_session)
19-
workshop = create(:workshop_session)
16+
regular_session = create(:regular_session, event: event)
17+
workshop = create(:workshop_session, event: event)
2018
visit program_path(event)
2119

2220
expect(page).to have_content(regular_session.title)
@@ -27,9 +25,8 @@
2725
end
2826

2927
scenario "the event website program page reflects updates to program sessions", js: true do
30-
skip "FactoryBot 😤"
3128
login_as(organizer)
32-
regular_session = create(:regular_session)
29+
regular_session = create(:regular_session, event: event)
3330

3431
visit program_path(event)
3532
expect(page).to have_content(regular_session.title)
@@ -44,9 +41,8 @@
4441
end
4542

4643
scenario "the event website page stops displaying deleted program sessions", js: true do
47-
skip "FactoryBot 😤"
4844
login_as(organizer)
49-
regular_session = create(:regular_session)
45+
regular_session = create(:regular_session, event: event)
5046

5147
visit program_path(event)
5248
expect(page).to have_content(regular_session.title)

spec/features/website/schedule_spec.rb

-2
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,13 @@
4141
end
4242

4343
scenario "the event website schedule page displays time slots that have program sessions", js: true do
44-
skip "FactoryBot 😤"
4544
time_slot = create(:with_workshop_session, event: event)
4645

4746
visit schedule_path(event)
4847
expect(page).to have_content(time_slot.title)
4948
end
5049

5150
scenario "the event website schedule page displays updates to time slots that have program sessions", js: true do
52-
skip "FactoryBot 😤"
5351
time_slot = create(:with_workshop_session, event: event)
5452

5553
time_slot.update(start_time: (time_slot.start_time - 1.hour))

spec/mailers/comment_notification_mailer_spec.rb

+1-4
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434

3535
describe "reviewer_notification" do
3636
let(:proposal) { create(:proposal, :with_reviewer_public_comment) }
37-
let(:reviewer) { create(:user, :reviewer) }
37+
let(:reviewer) { create(:reviewer, event: proposal.event) }
3838
let(:comment) { create(:comment, proposal: proposal, type: "PublicComment", user: reviewer, body: "Reviewer comment as a Reviewer on Proposal") }
3939
let(:speaker) { create(:speaker) }
4040
let(:speaker_comment) { create(:comment, user: speaker.user, proposal: proposal) }
@@ -48,19 +48,16 @@
4848
end
4949

5050
it "emails reviewers when speaker comments" do
51-
skip "FactoryBot 😤"
5251
expect(proposal.reviewers.count).to eq(2)
5352
expect(mail.to.count).to eq(2)
5453
expect(mail.to).to match_array([proposal.reviewers.first.email, reviewer.email])
5554
end
5655

5756
it "has proper subject" do
58-
skip "FactoryBot 😤"
5957
expect(mail.subject).to eq("#{proposal.event.name} CFP: New comment on '#{proposal.title}'")
6058
end
6159

6260
it "has proper body content" do
63-
skip "FactoryBot 😤"
6461
expect(mail.body.encoded).to match(proposal.event.name)
6562
expect(mail.body.encoded).to match(proposal.title)
6663
expect(mail.body.encoded).to match("A comment has been left on the proposal '#{proposal.title}' for #{proposal.event.name}:")

spec/models/proposal_spec.rb

+7-14
Original file line numberDiff line numberDiff line change
@@ -334,12 +334,11 @@
334334

335335
describe "#update" do
336336
let(:proposal) { create(:proposal_with_track, title: 't') }
337-
let(:organizer) { create(:user, :organizer) }
337+
let(:organizer) { create(:organizer, event: proposal.event) }
338338

339339
describe ".last_change" do
340340
describe "when role organizer" do
341341
it "is cleared" do
342-
skip "FactoryBot 😤"
343342
proposal.update(title: 'Organizer Edited Title', updating_user: organizer)
344343
expect(proposal.last_change).to be_nil
345344
end
@@ -410,11 +409,10 @@
410409

411410
describe "#reviewers" do
412411
let!(:proposal) { create(:proposal_with_track) }
413-
let!(:reviewer) { create(:user, :reviewer) }
412+
let!(:reviewer) { create(:reviewer, event: proposal.event) }
414413
let!(:organizer) { create(:organizer, event: proposal.event) }
415414

416415
it "can return the list of reviewers" do
417-
skip "FactoryBot 😤"
418416
create(:rating, user: reviewer, proposal: proposal)
419417
proposal.public_comments.create(attributes_for(:comment, user: organizer))
420418

@@ -426,7 +424,6 @@
426424
end
427425

428426
it "does not list a reviewer more than once" do
429-
skip "FactoryBot 😤"
430427
create(:rating, user: reviewer, proposal: proposal)
431428
proposal.public_comments.create(attributes_for(:comment, user: reviewer))
432429

@@ -437,34 +434,32 @@
437434
describe 'emailable_reviewers' do
438435
let!(:proposal) { create(:proposal_with_track) }
439436
let!(:no_email_reviewer) do
440-
reviewer = create(:user, :reviewer)
437+
reviewer = create(:reviewer, event: proposal.event)
441438
reviewer.teammates.first.update_attribute(:notification_preference, Teammate::IN_APP_ONLY)
442439
create(:rating, user: reviewer, proposal: proposal)
443440
reviewer
444441
end
445442
let!(:mentions_only_reviewer) do
446-
reviewer = create(:user, :reviewer)
443+
reviewer = create(:reviewer, event: proposal.event)
447444
reviewer.teammates.first.update_attribute(:notification_preference, Teammate::MENTIONS)
448445
create(:rating, user: reviewer, proposal: proposal)
449446
reviewer
450447
end
451448
let!(:reviewer) do
452-
reviewer = create(:user, :reviewer)
449+
reviewer = create(:reviewer, event: proposal.event)
453450
create(:rating, user: reviewer, proposal: proposal)
454451
reviewer
455452
end
456453

457454
it 'returns only reviewers with all emails turned on' do
458-
skip "FactoryBot 😤"
459455
expect(proposal.emailable_reviewers).to match_array([ reviewer ])
460456
end
461457
end
462458

463459
describe "#speaker_update_and_notify" do
464460
it "sends notification to all reviewers" do
465-
skip "FactoryBot 😤"
466461
proposal = create(:proposal_with_track, title: 'orig_title', pitch: 'orig_pitch')
467-
reviewer = create(:user, :reviewer)
462+
reviewer = create(:reviewer, event: proposal.event)
468463
organizer = create(:organizer, event: proposal.event)
469464

470465
create(:rating, user: reviewer, proposal: proposal)
@@ -481,9 +476,8 @@
481476
end
482477

483478
it "uses the old title in the notification message" do
484-
skip "FactoryBot 😤"
485479
proposal = create(:proposal_with_track, title: 'orig_title')
486-
reviewer = create(:user, :reviewer)
480+
reviewer = create(:reviewer, event: proposal.event)
487481
create(:rating, user: reviewer, proposal: proposal)
488482

489483
proposal.speaker_update_and_notify(title: 'new_title')
@@ -516,7 +510,6 @@
516510
end
517511

518512
it "sends a notification to reviewers" do
519-
skip "FactoryBot 😤"
520513
proposal = create(:proposal_with_track, :with_reviewer_public_comment,
521514
state: SUBMITTED)
522515
expect {

spec/models/public_comment_spec.rb

+1-7
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
let(:proposal) { create(:proposal_with_track, :with_organizer_public_comment, :with_speaker) }
1010
let(:organizer) { Teammate.for_event(proposal.event).organizer.first.user }
1111
it "creates a notification" do
12-
skip "FactoryBot 😤"
1312
expect {
1413
proposal.public_comments.create(attributes_for(:comment, user: speaker))
1514
}.to change {
@@ -18,7 +17,6 @@
1817
end
1918

2019
it "does not show the name of the speaker" do
21-
skip "FactoryBot 😤"
2220
proposal.public_comments.create(attributes_for(:comment, user: speaker))
2321
expect(organizer.reload.notifications.last.message).to_not match(speaker.name)
2422
end
@@ -29,7 +27,6 @@
2927
let(:reviewer) { Teammate.for_event(proposal.event).reviewer.first.user }
3028

3129
it "creates a notification" do
32-
skip "FactoryBot 😤"
3330
expect {
3431
proposal.public_comments.create(attributes_for(:comment, user: speaker))
3532
}.to change {
@@ -38,7 +35,6 @@
3835
end
3936

4037
it "does not show the name of the speaker" do
41-
skip "FactoryBot 😤"
4238
proposal.public_comments.create(attributes_for(:comment, user: speaker))
4339
expect(reviewer.reload.notifications.last.message).to_not match(speaker.name)
4440
end
@@ -89,7 +85,6 @@
8985

9086
describe "for organizers who have rated the proposal" do
9187
it "creates a notification" do
92-
skip "FactoryBot 😤"
9388
proposal = create(:proposal_with_track, :with_speaker)
9489
organizer = create(:organizer, event: proposal.event)
9590
create(:rating, proposal: proposal, user: organizer)
@@ -134,7 +129,7 @@
134129
describe "#send_emails" do
135130
let!(:proposal) { create(:proposal_with_track) }
136131
let!(:speakers) { create_list(:speaker, 3, proposal: proposal) }
137-
let!(:reviewer) { create(:user, :reviewer) }
132+
let!(:reviewer) { create(:reviewer, event: proposal.event) }
138133
context "when reviewer creates a PublicComment" do
139134
it "should send notication to each speaker" do
140135
expect {
@@ -148,7 +143,6 @@
148143
context 'Speaker create a PublicComment' do
149144
before { proposal.public_comments.create(attributes_for(:comment, user: reviewer)) }
150145
it 'should send notification to reviewer if speaker comments' do
151-
skip "FactoryBot 😤"
152146
expect {
153147
proposal.public_comments.create(attributes_for(:comment, user: speakers.first.user))
154148
}.to change(ActionMailer::Base.deliveries, :count).by(1)

0 commit comments

Comments
 (0)