You can check by using `STDOUT.puts` if you're debugging. I personally prefer sticking `binding.pry` here and there from `pry-byebug` gem
On Mon, Apr 5, 2021 at 6:42 PM Jack Royal-Gordon <jac...@pobox.com> wrote: > > In troubleshooting a system test that is failing, the debugging output from > my controller is mixed in with RSpec’s output. I’m guessing that has to do > with RSpec capturing terminal output, but it has me wondering if the test is > failing before the code has a chance to complete. > > The test is of a drag-and-drop operation on screen that results in an Ajax > call to the app, followed by activity on screen once the Ajax call completes > successfully. The ajax call deletes one record and moves it’s children to > another record. I added two debugging statements: one at the beginning of the > controller action, dumping the params, and the other after the database > changes have been made, stating that the parent record has been deleted. The > output looks as follows: > > Source = 38347; target = 38360 > F > > > Failures: > > 1) SKUs Screen Draggable and Droppable actions when dragging and droppng a > book on another book with confirmation updates the database correctly > Failure/Error: expect(source.reload).to be_destroyed, "Source book not > destroyed" > Source book not destroyed > > params: <ActionController::Parameters {"verb"=>"MoveBook", > "source_id"=>"book_38347", "dest_id"=>"book_38360", "ts"=>"1617589502334", > "controller"=>"books", "action"=>"modify", "format"=>"js"} permitted: false> > book deleted > [Screenshot]: > tmp/screenshots/failures_r_spec_example_groups_sk_us_screen_draggable_and_droppable_actions_when_dragging_and_droppng_a_book_on_another_book_with_confirmation_updates_the_database_correctly_752.png > > > The green highlighted text is output by the test spec before it really gets > going. The other two highlighted segments of text are the two troubleshooting > outputs from the controller action called via Ajax. Note that they are output > after the failure message and before the screen shot message. I find this > extremely suspicious. Can I conclude from this that the test failed before > the controller action had a chance to run? > > FWIW, here is the test (there is other setup code above this, but nothing > that should affect the flow through the test (the second “it” is the one > causing the failure — the first one succeeds): > > describe "when dragging and droppng a book on another book" do > let!(:source) { user.books.first } > let!(:target) { user.books.second } > let!(:source_control) { page.find("#book_#{source.id} .book_title > label") } > let!(:target_control) { page.find("#book_#{target.id}") } > let!(:source_skus) { source.skus.map(&:id).to_set } > let!(:target_skus) { target.skus.map(&:id).to_set } > > describe "with confirmation" do > before do > puts "Source = #{source.id}; target = #{target.id}" > accept_confirm do > source_control.drag_to(target_control) > end > end > > it 'changes the display correctly' do > expect(page).to_not have_selector("#book_#{source.id}"), "Source > book still exists on page" > for sku in source.skus > expect(page).to have_selector("#book_#{target.id} > #sku_#{sku.id}"), "Source SKU not found within target book" > end > end > > it 'updates the database correctly' do > expect(source.reload).to be_destroyed, "Source book not destroyed" > new_target_skus = target.skus.reload.map(&:id).to_set > expect(new_target_skus).to include(*source_skus), "Some Source SKUs > not moved to target" > expect(new_target_skus).to include(*target_skus), "Some target SKUs > lost during the move" > end > end > > Note: When the drop occurs, a “confirm” modal dialog is displayed requiring > the user to confirm the operation. > > -- > You received this message because you are subscribed to the Google Groups > "rspec" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to rspec+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/rspec/8004A377-5FB4-4F70-A740-C2F70E8F09B2%40pobox.com. -- You received this message because you are subscribed to the Google Groups "rspec" group. To unsubscribe from this group and stop receiving emails from it, send an email to rspec+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/rspec/CAAk5Ok_K4taBvMDAN4%2BrLPQJxy57AFo6VPmvc6yzgNmbw%2BQVBQ%40mail.gmail.com.