commit: 5d9f4795389d93e1a642eaa7c9be44757bd1e17c
parent: 3ce9ca4c99c9403125ea2b23690a274b05dfd2ac
Author: Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp>
Date: Wed, 24 May 2017 06:37:24 +0900
Cover HomeController more (#3258)
Diffstat:
1 file changed, 55 insertions(+), 3 deletions(-)
diff --git a/spec/controllers/home_controller_spec.rb b/spec/controllers/home_controller_spec.rb
@@ -4,9 +4,61 @@ RSpec.describe HomeController, type: :controller do
render_views
describe 'GET #index' do
- it 'redirects to about page' do
- get :index
- expect(response).to redirect_to(about_path)
+ context 'when not signed in' do
+ it 'redirects to about page' do
+ get :index
+ expect(response).to redirect_to(about_path)
+ end
+ end
+
+ context 'when signed in' do
+ let(:user) { Fabricate(:user) }
+ subject do
+ sign_in(user)
+ get :index
+ end
+
+ it 'assigns @body_classes' do
+ subject
+ expect(assigns(:body_classes)).to eq 'app-body'
+ end
+
+ it 'assigns @token' do
+ app = Doorkeeper::Application.create!(name: 'Web', superapp: true, redirect_uri: Doorkeeper.configuration.native_redirect_uri)
+ allow(Doorkeeper.configuration).to receive(:access_token_expires_in).and_return(42)
+
+ subject
+ token = Doorkeeper::AccessToken.find_by(token: assigns(:token))
+
+ expect(token.application).to eq app
+ expect(token.resource_owner_id).to eq user.id
+ expect(token.scopes).to eq Doorkeeper::OAuth::Scopes.from_string('read write follow')
+ expect(token.expires_in_seconds).to eq 42
+ expect(token.use_refresh_token?).to eq false
+ end
+
+ it 'assigns @web_settings for {} if not available' do
+ subject
+ expect(assigns(:web_settings)).to eq({})
+ end
+
+ it 'assigns @web_settings for Web::Setting if available' do
+ setting = Fabricate('Web::Setting', data: '{"home":{}}', user: user)
+ subject
+ expect(assigns(:web_settings)).to eq setting.data
+ end
+
+ it 'assigns @admin' do
+ admin = Fabricate(:account)
+ Setting.site_contact_username = admin.username
+ subject
+ expect(assigns(:admin)).to eq admin
+ end
+
+ it 'assigns streaming_api_base_url' do
+ subject
+ expect(assigns(:streaming_api_base_url)).to eq 'ws://localhost:4000'
+ end
end
end
end