Skip to content

Commit ef17246

Browse files
committed
Remove PageRepository.move_page method
Replace with direct call to Page#move_page. This was the last remaining method in PageRepository, so the class has been deleted.
1 parent 29c96b0 commit ef17246

File tree

4 files changed

+24
-58
lines changed

4 files changed

+24
-58
lines changed

app/controllers/pages_controller.rb

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,15 @@ def start_new_question
7777
end
7878

7979
def move_page
80-
page_to_move = current_form.pages.find(move_params[:page_id])
80+
page = current_form.pages.find(move_params[:page_id])
81+
page.move_page(move_params[:direction])
8182

82-
moved_page = PageRepository.move_page(page_to_move, move_params[:direction])
83+
success_message = t("banner.success.form.page_moved",
84+
question_text: page.question_text,
85+
direction: move_params[:direction],
86+
question_number: page.position)
8387

84-
redirect_to form_pages_path, success: t("banner.success.form.page_moved", question_text: page_to_move.question_text, direction: move_params[:direction], question_number: moved_page.position)
88+
redirect_to form_pages_path, success: success_message
8589
end
8690

8791
private
@@ -119,8 +123,8 @@ def setup_draft_question_for_existing_page
119123

120124
if edit_draft_question.new_record?
121125
attributes = page.attributes
122-
.slice(*edit_draft_question.attribute_names)
123-
.except("id")
126+
.slice(*edit_draft_question.attribute_names)
127+
.except("id")
124128
edit_draft_question.attributes = attributes
125129
edit_draft_question.save!(validate: false)
126130
end

app/services/page_repository.rb

Lines changed: 0 additions & 8 deletions
This file was deleted.

spec/requests/pages_controller_spec.rb

Lines changed: 15 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -313,53 +313,44 @@
313313
describe "#move_page" do
314314
let(:form) { create(:form, :with_pages) }
315315
let(:pages) { form.pages }
316+
let(:page) { pages.second }
316317

317318
before do
318319
GroupForm.create!(form_id: form.id, group_id: group.id)
319320
end
320321

321322
context "when moving the page up", :capture_logging do
322-
before do
323-
allow(PageRepository).to receive(:move_page) do |page, _direction|
324-
page.move_higher
325-
page
326-
end
327-
328-
post move_page_path({ form_id: form.id, move_direction: { up: pages[1].id } })
329-
end
330-
331323
it "logs the params" do
332-
expect(log_line["params"]).to include "move_direction" => { "up" => pages[1].id.to_s }
324+
post move_page_path({ form_id: form.id, move_direction: { up: page.id } })
325+
expect(log_line["params"]).to include "move_direction" => { "up" => page.id.to_s }
333326
end
334327

335-
it "calls the page repository to move the page up" do
336-
expect(PageRepository).to have_received(:move_page).with(pages[1], :up)
328+
it "moves the page up" do
329+
expect {
330+
post move_page_path({ form_id: form.id, move_direction: { up: page.id } })
331+
}.to change { page.reload.position }.from(2).to(1)
337332
end
338333

339334
it "renders a success banner with the page's new position" do
335+
post move_page_path({ form_id: form.id, move_direction: { up: page.id } })
340336
expect(flash[:success]).to eq("‘#{pages[1].question_text}’ has moved up to number 1")
341337
end
342338
end
343339

344340
context "when moving the page down", :capture_logging do
345-
before do
346-
allow(PageRepository).to receive(:move_page) do |page, _direction|
347-
page.move_lower
348-
page
349-
end
350-
351-
post move_page_path({ form_id: form.id, move_direction: { down: pages[1].id } })
352-
end
353-
354341
it "logs the params" do
355-
expect(log_line["params"]).to include "move_direction" => { "down" => pages[1].id.to_s }
342+
post move_page_path({ form_id: form.id, move_direction: { down: page.id } })
343+
expect(log_line["params"]).to include "move_direction" => { "down" => page.id.to_s }
356344
end
357345

358-
it "calls the page repository to move the page down" do
359-
expect(PageRepository).to have_received(:move_page).with(pages[1], :down)
346+
it "moves the page down" do
347+
expect {
348+
post move_page_path({ form_id: form.id, move_direction: { down: page.id } })
349+
}.to change { page.reload.position }.from(2).to(3)
360350
end
361351

362352
it "renders a success banner with the page's new position" do
353+
post move_page_path({ form_id: form.id, move_direction: { down: page.id } })
363354
expect(flash[:success]).to eq("‘#{pages[1].question_text}’ has moved down to number 3")
364355
end
365356
end

spec/services/page_repository_spec.rb

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)