If by dual booting you mean being able to run in both the old and new gem environments (versions), I’ve covered that with rbenv. If you mean keeping separate source, I’ve covered that with git. Do you mean something else?
> On Apr 11, 2020, at 9:58 PM, Chris Irish <[email protected]> wrote: > > In addition to what Joseph said > > Look into Dual Booting the app when doing large upgrade work like you are > > See https://github.com/Shopify/bootboot <https://github.com/Shopify/bootboot> > and the link in the README for the conference talk, really good info > > > > On Friday, April 10, 2020 at 1:15:33 PM UTC-7, Jack R-G wrote: > I have a test for a controller that receives uploaded files, and I’ve gotten > past a lot of obstacles, but I’ve got one that I just can’t understand. Using > RSpec 2.12, Ruby 2.0.0, Rails 3.2.21. > > Code from spec/controllers/auto_controller.rb: > > … > describe AutoController do > GoodEmails.each_with_index do | params, ix | > before(:each) do > Upload.delete_all > Log.delete_all > post :create, params > end > it "Valid posts for good email #{ix}" do > response.code.should eq "201" > Upload.count.should eq 1 > Log.count.should eq 1 > Log.last.message.should match(/Kobo Sales Upload/) > end > end > … > > > Some of the code from app/controllers/auto_controller.rb: > > def create > begin > for i in (1 .. params[:attachments].to_i) > attachment = params["attachment#{i}"] > if attachment.present? && attachment.original_filename.is_a?(String) > && attachment.original_filename.split(".").last == 'zip' > upload = Upload.create!(filename: attachment.original_filename, > content: attachment.read, uploaded_at: Time.now, file_descr: params[:subject] > ) > Log.log_message("Sales Upload #{upload.id <http://upload.id/>} > received (#{params[:subject]})", distributor_id: distributor_id, task: > 'auto’, data: {params: clean(params)}) > end > end > render status: :created, nothing: true > rescue StandardError > render status: :created, nothing: true > Log.log_message("Bad email received; subject: #{params[:subject]}", > data: {params: clean(params)}) > end > end > > I’m getting the test rejected message: > Failure/Error: Upload.count.should eq 1 > > expected: 1 > got: 0 > > (compared using ==) > > > When I set a breakpoint at the end of the controller code, I see that > response.code = 201, Upload.count = 1, Log.count = 1, and Log.last.message = > "Kobo Sales Upload” > > However, when I set a breakpoint in the spec file right inside the “it” > block, I see response.code = 201, Upload.count = 0, and Log.count = 0. > > My expectation was that the “before(:each)” would run before each test, so > that I would see a break in the spec, then four breaks in the controller, > then a break in the spec and four more breaks in the controller. Ideally, I > would like to run the before code once, then perform the four tests on the > result, and then iterate for the second GoodEmail. I think that I could > accomplish that by using “before(:all)”, but apparently you cannot put a > “post” command inside a before(:all) block, so I can’t do that. > > So, I have two questions: > 1) Why aren’t the database records still there when I get to the “it” block? > 2) Is there a “more correct way ” (in terms of RSpec best practices) to > structure this test sequence? > > > -- > 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 [email protected] > <mailto:[email protected]>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/rspec/57efb04b-6dea-4dff-b26a-b0b07e2978bc%40googlegroups.com > > <https://groups.google.com/d/msgid/rspec/57efb04b-6dea-4dff-b26a-b0b07e2978bc%40googlegroups.com?utm_medium=email&utm_source=footer>. -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/rspec/5DCC5CD9-117A-41B2-989D-EBC5CE654B6D%40pobox.com.
