2016-03-31 17:33:25 -04:00
require 'rails_helper'
2013-04-04 12:59:44 -04:00
2015-08-10 10:34:40 -04:00
describe Admin :: SiteTextsController do
2013-04-04 12:59:44 -04:00
it " is a subclass of AdminController " do
2015-08-10 10:34:40 -04:00
expect ( Admin :: SiteTextsController < Admin :: AdminController ) . to eq ( true )
2013-04-04 12:59:44 -04:00
end
context 'while logged in as an admin' do
before do
@user = log_in ( :admin )
end
2016-03-31 17:33:25 -04:00
context '.index' do
it 'returns json' do
xhr :get , :index , q : 'title'
expect ( response ) . to be_success
expect ( :: JSON . parse ( response . body ) ) . to be_present
end
end
2013-04-04 12:59:44 -04:00
context '.show' do
2016-03-31 17:33:25 -04:00
it 'returns a site text for a key that exists' do
xhr :get , :show , id : 'title'
expect ( response ) . to be_success
json = :: JSON . parse ( response . body )
expect ( json ) . to be_present
site_text = json [ 'site_text' ]
expect ( site_text ) . to be_present
expect ( site_text [ 'id' ] ) . to eq ( 'title' )
expect ( site_text [ 'value' ] ) . to eq ( I18n . t ( :title ) )
end
it 'returns not found for missing keys' do
xhr :get , :show , id : 'made_up_no_key_exists'
expect ( response ) . not_to be_success
end
end
2013-04-04 12:59:44 -04:00
2016-03-31 17:33:25 -04:00
context '.update and .revert' do
it 'updates and reverts the key' do
orig_title = I18n . t ( :title )
xhr :put , :update , id : 'title' , site_text : { value : 'hello' }
expect ( response ) . to be_success
json = :: JSON . parse ( response . body )
expect ( json ) . to be_present
site_text = json [ 'site_text' ]
expect ( site_text ) . to be_present
expect ( site_text [ 'id' ] ) . to eq ( 'title' )
expect ( site_text [ 'value' ] ) . to eq ( 'hello' )
# Revert
xhr :put , :revert , id : 'title'
2015-01-09 14:04:02 -03:00
expect ( response ) . to be_success
2016-03-31 17:33:25 -04:00
json = :: JSON . parse ( response . body )
expect ( json ) . to be_present
site_text = json [ 'site_text' ]
expect ( site_text ) . to be_present
expect ( site_text [ 'id' ] ) . to eq ( 'title' )
expect ( site_text [ 'value' ] ) . to eq ( orig_title )
2013-04-04 12:59:44 -04:00
end
2016-03-31 17:33:25 -04:00
it 'returns not found for missing keys' do
xhr :put , :update , id : 'made_up_no_key_exists' , site_text : { value : 'hello' }
expect ( response ) . not_to be_success
end
it 'logs the change' do
StaffActionLogger . any_instance . expects ( :log_site_text_change ) . once
xhr :put , :update , id : 'title' , site_text : { value : 'hello' }
2013-04-04 12:59:44 -04:00
end
end
end
end