logo

mastofe

My custom branche(s) on git.pleroma.social/pleroma/mastofe
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:

Mspec/controllers/home_controller_spec.rb58+++++++++++++++++++++++++++++++++++++++++++++++++++++++---
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