1
0
Fork 0
mirror of https://github.com/kbparagua/paloma synced 2023-03-27 23:21:17 -04:00
paloma/test_app/spec/integration/main_spec.rb

108 lines
2.6 KiB
Ruby

require 'spec_helper'
feature 'executing Paloma controller', :js => true do
describe 'after rendering' do
it 'executes the corresponding Paloma controller action' do
visit foo_path(1)
called = page.evaluate_script 'window.called'
expect(called).to include 'MyFoo#show'
end
context 'coming from a redirect' do
before { visit foo_index_path }
it 'executes first the Paloma action of the first Rails action' do
first = page.evaluate_script 'window.called[0]'
expect(first).to eq 'MyFoo#index'
end
it 'executes next the Paloma action of the last Rails action' do
last = page.evaluate_script 'window.called.pop()'
expect(last).to eq 'Main#index'
end
end
context 'when js params is passed' do
it 'passes the parameters to Paloma controller action' do
visit foo_path(1)
parameter = page.evaluate_script 'window.parameter'
expect(parameter).to eq 'Parameter From Paloma'
end
end
context 'from namespaced controller' do
it 'executes the corresponding Paloma controller action' do
visit admin_bar_path(1)
called = page.evaluate_script 'window.called.pop()'
expect(called).to eq 'Admin/Bar#show'
end
end
context 'when js(false) is triggered' do
it 'does not append paloma hook' do
visit edit_foo_path(1)
page.should_not have_selector '.js-paloma-hook'
end
end
context 'when requests from a controller with multiple name' do
it 'executes the corresponding Paloma action' do
visit multiple_names_path
called = page.evaluate_script 'window.called.pop()'
expect(called).to eq 'MultipleNames#index'
end
end
#
# [TODO]
# Create proper test for the following:
#
context 'when rendering json' do
it 'does not execute Paloma' do
visit json_response_main_path 1
page.should_not have_selector '.js-paloma-hook'
end
end
context 'when rendering js' do
it 'does not execute Paloma' do
visit js_response_main_path 1
page.should_not have_selector '.js-paloma-hook'
end
end
context 'when rendering xml' do
it 'does not execute Paloma' do
visit xml_response_main_path 1
page.should_not have_selector '.js-paloma-hook'
end
end
context 'when rendering a file' do
it 'does not execute Paloma' do
visit file_response_main_path 1
page.should_not have_selector '.js-paloma-hook'
end
end
end
end