From 0a5ccaf8db6b7ea5673051514b99ff2454654817 Mon Sep 17 00:00:00 2001 From: kbparagua Date: Sat, 15 Feb 2014 18:51:02 +0800 Subject: [PATCH] request spec helper --- .../app/assets/javascripts/application.js | 7 ++++- test_app/app/controllers/bars_controller.rb | 7 +++++ test_app/config/routes.rb | 3 ++ test_app/spec/integration/advanced_spec.rb | 29 ++++++++++++++++--- test_app/spec/integration/basic_spec.rb | 8 +---- test_app/spec/spec_helper.rb | 5 ++++ 6 files changed, 47 insertions(+), 12 deletions(-) create mode 100644 test_app/app/controllers/bars_controller.rb diff --git a/test_app/app/assets/javascripts/application.js b/test_app/app/assets/javascripts/application.js index 9fd060e..5302670 100644 --- a/test_app/app/assets/javascripts/application.js +++ b/test_app/app/assets/javascripts/application.js @@ -43,4 +43,9 @@ Foos.prototype.otherAction = function(){}; var NotFoos = Paloma.controller('NotAdmin/Foos'); NotFoos.prototype.show = function(){}; -NotFoos.prototype.otherAction = function(){}; \ No newline at end of file +NotFoos.prototype.otherAction = function(){}; + + + +var Baz = Paloma.controller('Baz'); +Baz.prototype.index = function(){}; \ No newline at end of file diff --git a/test_app/app/controllers/bars_controller.rb b/test_app/app/controllers/bars_controller.rb new file mode 100644 index 0000000..dcea65d --- /dev/null +++ b/test_app/app/controllers/bars_controller.rb @@ -0,0 +1,7 @@ +class BarsController < ApplicationController + + def index + render :inline => 'Bars#index', :layout => 'application' + end + +end \ No newline at end of file diff --git a/test_app/config/routes.rb b/test_app/config/routes.rb index d12e761..f3e8fa1 100644 --- a/test_app/config/routes.rb +++ b/test_app/config/routes.rb @@ -19,4 +19,7 @@ TestApp::Application.routes.draw do namespace :admin do resources :foos end + + + resources :bars end diff --git a/test_app/spec/integration/advanced_spec.rb b/test_app/spec/integration/advanced_spec.rb index 5276f36..e7864bb 100644 --- a/test_app/spec/integration/advanced_spec.rb +++ b/test_app/spec/integration/advanced_spec.rb @@ -12,7 +12,6 @@ feature 'executing Paloma controller', :js => true do context 'default behavior' do it 'executes the same namespace/controller/action' do visit admin_foos_path - request = page.evaluate_script 'Paloma.engine.lastRequest' expect(request).to eq({ 'controller' => 'Admin/Foos', @@ -25,7 +24,6 @@ feature 'executing Paloma controller', :js => true do context 'override default controller' do it 'executes the specified controller' do visit admin_foo_path(1) - request = page.evaluate_script 'Paloma.engine.lastRequest' expect(request).to eq({ 'controller' => 'NotAdmin/Foos', @@ -38,7 +36,6 @@ feature 'executing Paloma controller', :js => true do context 'override default action' do it 'executes the specified action' do visit new_admin_foo_path - request = page.evaluate_script 'Paloma.engine.lastRequest' expect(request).to eq({ 'controller' => 'Admin/Foos', @@ -51,7 +48,6 @@ feature 'executing Paloma controller', :js => true do context 'override default controller/action' do it 'executes the specified controller/action' do visit edit_admin_foo_path(1) - request = page.evaluate_script 'Paloma.engine.lastRequest' expect(request).to eq({ 'controller' => 'NotAdmin/Foos', @@ -60,4 +56,29 @@ feature 'executing Paloma controller', :js => true do end end + + + + + # + # + # Controller-wide settings + # + # + + context 'global controller' do + before do + BarsController.send :js, 'Baz' + end + + it 'executes the specified controller' do + visit bars_path + + expect(request).to eq({ + 'controller' => 'Baz', + 'action' => 'index', + 'params' => {}}) + end + end + end \ No newline at end of file diff --git a/test_app/spec/integration/basic_spec.rb b/test_app/spec/integration/basic_spec.rb index 70c6e3f..483af92 100644 --- a/test_app/spec/integration/basic_spec.rb +++ b/test_app/spec/integration/basic_spec.rb @@ -18,7 +18,6 @@ feature 'executing Paloma controller', :js => true do context 'default behavior' do it 'executes the same controller/action' do visit main_index_path - request = page.evaluate_script 'Paloma.engine.lastRequest' expect(request).to eq({ 'controller' => 'Main', @@ -31,7 +30,6 @@ feature 'executing Paloma controller', :js => true do context 'override default controller' do it 'executes the specified controller' do visit main_path(1) - request = page.evaluate_script 'Paloma.engine.lastRequest' expect(request).to eq({ 'controller' => 'OtherMain', @@ -44,7 +42,6 @@ feature 'executing Paloma controller', :js => true do context 'override default action' do it 'executes the specified action' do visit new_main_path - request = page.evaluate_script 'Paloma.engine.lastRequest' expect(request).to eq({ 'controller' => 'Main', @@ -57,7 +54,6 @@ feature 'executing Paloma controller', :js => true do context 'override default controller/action' do it 'executes the specified controller/action' do visit edit_main_path(1) - request = page.evaluate_script 'Paloma.engine.lastRequest' expect(request).to eq({ 'controller' => 'OtherMain', @@ -70,9 +66,8 @@ feature 'executing Paloma controller', :js => true do context 'parameter passed' do it 'passes the parameter' do visit basic_params_main_index_path - params = page.evaluate_script 'Paloma.engine.lastRequest.params' - expect(params).to eq({'x' => 1, 'y' => 2}) + expect(request['params']).to eq({'x' => 1, 'y' => 2}) end end @@ -99,7 +94,6 @@ feature 'executing Paloma controller', :js => true do include_examples 'no paloma' it 'prevents execution of Paloma controller' do - request = page.evaluate_script 'Paloma.engine.lastRequest' expect(request).to be_nil end end diff --git a/test_app/spec/spec_helper.rb b/test_app/spec/spec_helper.rb index c4b3877..96161bc 100644 --- a/test_app/spec/spec_helper.rb +++ b/test_app/spec/spec_helper.rb @@ -30,3 +30,8 @@ RSpec.configure do |config| # --seed 1234 config.order = "random" end + + +def request + page.evaluate_script 'Paloma.engine.lastRequest' +end \ No newline at end of file