2015-10-11 10:41:23 +01:00
require 'rails_helper'
2013-07-08 12:25:38 +10:00
require_dependency 'discourse_version_check'
2013-03-14 18:26:12 -04:00
describe Admin :: DashboardController do
2013-07-08 12:25:38 +10:00
before do
2013-08-02 18:31:25 -04:00
AdminDashboardData . stubs ( :fetch_cached_stats ) . returns ( { reports : [ ] } )
2013-07-03 11:06:07 -04:00
Jobs :: VersionCheck . any_instance . stubs ( :execute ) . returns ( true )
2013-07-08 12:25:38 +10:00
end
2013-03-14 18:26:12 -04:00
it " is a subclass of AdminController " do
2015-01-09 14:04:02 -03:00
expect ( Admin :: DashboardController < Admin :: AdminController ) . to eq ( true )
2013-03-14 18:26:12 -04:00
end
context 'while logged in as an admin' do
let! ( :admin ) { log_in ( :admin ) }
context '.index' do
it 'should be successful' do
xhr :get , :index
2015-01-09 14:04:02 -03:00
expect ( response ) . to be_successful
2013-03-14 18:26:12 -04:00
end
context 'version checking is enabled' do
before do
SiteSetting . stubs ( :version_checks ) . returns ( true )
end
it 'returns discourse version info' do
xhr :get , :index
json = JSON . parse ( response . body )
2015-01-09 14:04:02 -03:00
expect ( json [ 'version_check' ] ) . to be_present
2013-03-14 18:26:12 -04:00
end
end
context 'version checking is disabled' do
before do
SiteSetting . stubs ( :version_checks ) . returns ( false )
end
it 'does not return discourse version info' do
xhr :get , :index
json = JSON . parse ( response . body )
2015-01-09 14:04:02 -03:00
expect ( json [ 'version_check' ] ) . not_to be_present
2013-03-14 18:26:12 -04:00
end
end
end
2013-03-29 15:48:26 -04:00
context '.problems' do
it 'should be successful' do
AdminDashboardData . stubs ( :fetch_problems ) . returns ( [ ] )
xhr :get , :problems
2015-01-09 14:04:02 -03:00
expect ( response ) . to be_successful
2013-03-29 15:48:26 -04:00
end
context 'when there are no problems' do
before do
AdminDashboardData . stubs ( :fetch_problems ) . returns ( [ ] )
end
it 'returns an empty array' do
xhr :get , :problems
json = JSON . parse ( response . body )
2015-01-09 14:04:02 -03:00
expect ( json [ 'problems' ] . size ) . to eq ( 0 )
2013-03-29 15:48:26 -04:00
end
end
context 'when there are problems' do
before do
AdminDashboardData . stubs ( :fetch_problems ) . returns ( [ 'Not enough awesome' , 'Too much sass' ] )
end
it 'returns an array of strings' do
xhr :get , :problems
json = JSON . parse ( response . body )
2015-01-09 14:04:02 -03:00
expect ( json [ 'problems' ] . size ) . to eq ( 2 )
expect ( json [ 'problems' ] [ 0 ] ) . to be_a ( String )
expect ( json [ 'problems' ] [ 1 ] ) . to be_a ( String )
2013-03-29 15:48:26 -04:00
end
end
end
2013-03-14 18:26:12 -04:00
end
2013-07-08 12:25:38 +10:00
end