From 8598aa1f219cbf7f09d1086f00bb57058a98b4ac Mon Sep 17 00:00:00 2001 From: "R. Tyler Croy" Date: Wed, 21 Dec 2011 15:06:22 -0800 Subject: [PATCH] Add a reproduction case for this issue :( --- .rvmrc | 1 + Gemfile | 7 +++++++ app/server.rb | 11 +++++++++++ config.ru | 0 features/step_definitions/derp_steps.rb | 12 ++++++++++++ features/support/env.rb | 23 +++++++++++++++++++++++ features/test.feature | 6 ++++++ 7 files changed, 60 insertions(+) create mode 100644 .rvmrc create mode 100644 Gemfile create mode 100644 app/server.rb create mode 100644 config.ru create mode 100644 features/step_definitions/derp_steps.rb create mode 100644 features/support/env.rb create mode 100644 features/test.feature diff --git a/.rvmrc b/.rvmrc new file mode 100644 index 0000000..e772fc9 --- /dev/null +++ b/.rvmrc @@ -0,0 +1 @@ +rvm use ruby-1.8.7@async-sinatra-test-bug --create diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..3795beb --- /dev/null +++ b/Gemfile @@ -0,0 +1,7 @@ +source :gemcutter + +gem "rake" +gem "async_sinatra" +gem "rack-test" +gem "cucumber" +gem "rspec" diff --git a/app/server.rb b/app/server.rb new file mode 100644 index 0000000..949a14e --- /dev/null +++ b/app/server.rb @@ -0,0 +1,11 @@ + +require 'rubygems' +require 'sinatra/async' + +class AsyncTest < Sinatra::Base + register Sinatra::Async + + aget '/' do + body "hello" + end +end diff --git a/config.ru b/config.ru new file mode 100644 index 0000000..e69de29 diff --git a/features/step_definitions/derp_steps.rb b/features/step_definitions/derp_steps.rb new file mode 100644 index 0000000..c0adb32 --- /dev/null +++ b/features/step_definitions/derp_steps.rb @@ -0,0 +1,12 @@ +Given /^I am a bug$/ do +end + +When /^I get "([^"]*)"$/ do |arg1| + aget '/' + em_async_continue +end + +Then /^I should asplode$/ do + last_response.body.should == "hello" +end + diff --git a/features/support/env.rb b/features/support/env.rb new file mode 100644 index 0000000..f557be5 --- /dev/null +++ b/features/support/env.rb @@ -0,0 +1,23 @@ + +ENV["RACK_ENV"] = 'test' +require 'rspec' +require 'test/unit' +require 'rack/test' +require "sinatra/async/test" + +require File.expand_path(File.dirname(__FILE__) + "/../../app/server") + +module AppRunner + def app + AsyncTest.new + end +end +World(Test::Unit::Assertions, Sinatra::Async::Test::Methods, AppRunner) + +def post_json(path,json) + header 'Content-Type', 'application/json' + apost path, json.to_json + em_async_continue + last_response +end + diff --git a/features/test.feature b/features/test.feature new file mode 100644 index 0000000..135a879 --- /dev/null +++ b/features/test.feature @@ -0,0 +1,6 @@ +Feature: Herp + + Scenario: Derp + Given I am a bug + When I get "/" + Then I should asplode