|
313 | 313 | describe "#move_page" do
|
314 | 314 | let(:form) { create(:form, :with_pages) }
|
315 | 315 | let(:pages) { form.pages }
|
| 316 | + let(:page) { pages.second } |
316 | 317 |
|
317 | 318 | before do
|
318 | 319 | GroupForm.create!(form_id: form.id, group_id: group.id)
|
319 | 320 | end
|
320 | 321 |
|
321 | 322 | 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 |
| - |
331 | 323 | 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 } |
333 | 326 | end
|
334 | 327 |
|
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) |
337 | 332 | end
|
338 | 333 |
|
339 | 334 | 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 } }) |
340 | 336 | expect(flash[:success]).to eq("‘#{pages[1].question_text}’ has moved up to number 1")
|
341 | 337 | end
|
342 | 338 | end
|
343 | 339 |
|
344 | 340 | 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 |
| - |
354 | 341 | 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 } |
356 | 344 | end
|
357 | 345 |
|
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) |
360 | 350 | end
|
361 | 351 |
|
362 | 352 | 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 } }) |
363 | 354 | expect(flash[:success]).to eq("‘#{pages[1].question_text}’ has moved down to number 3")
|
364 | 355 | end
|
365 | 356 | end
|
|
0 commit comments