about summary refs log tree commit diff
path: root/spec/controllers/application_controller_spec.rb
diff options
context:
space:
mode:
authorThibaut Girka <thib@sitedethib.com>2018-08-24 13:34:51 +0200
committerThibaut Girka <thib@sitedethib.com>2018-08-24 15:10:34 +0200
commit246c313d457397f412f9fb5eed3ee02cf5d9a561 (patch)
tree4c8d12cc031476870a918bec3b3000f899101a32 /spec/controllers/application_controller_spec.rb
parent0ddf439999b05b5dfd6d5a5257327fa7d3565e65 (diff)
parenta2cabf3f4af9271d8bfdb13c1ae2b7a8b4e6fb88 (diff)
Merge branch 'master' into glitch-soc/merge-upstream
Conflicts:
	app/controllers/application_controller.rb

Changed instance theme selection by instance flavour selection.
Diffstat (limited to 'spec/controllers/application_controller_spec.rb')
-rw-r--r--spec/controllers/application_controller_spec.rb37
1 files changed, 37 insertions, 0 deletions
diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb
index c6c78d3f7..2603688be 100644
--- a/spec/controllers/application_controller_spec.rb
+++ b/spec/controllers/application_controller_spec.rb
@@ -92,6 +92,43 @@ describe ApplicationController, type: :controller do
     end
   end
 
+  describe 'helper_method :current_flavour' do
+    it 'returns "glitch" when theme wasn\'t changed in admin settings' do
+      allow(Setting).to receive(:default_settings).and_return({'skin' => 'default'})
+      allow(Setting).to receive(:default_settings).and_return({'flavour' => 'glitch'})
+
+      expect(controller.view_context.current_flavour).to eq 'glitch'
+    end
+
+    it 'returns instances\'s flavour when user is not signed in' do
+      allow(Setting).to receive(:[]).with('skin').and_return 'default'
+      allow(Setting).to receive(:[]).with('flavour').and_return 'vanilla'
+
+      expect(controller.view_context.current_flavour).to eq 'vanilla'
+    end
+
+    it 'returns instances\'s default flavour when user didn\'t set theme' do
+      current_user = Fabricate(:user)
+      sign_in current_user
+
+      allow(Setting).to receive(:[]).with('skin').and_return 'default'
+      allow(Setting).to receive(:[]).with('flavour').and_return 'vanilla'
+
+      expect(controller.view_context.current_flavour).to eq 'vanilla'
+    end
+
+    it 'returns user\'s flavour when it is set' do
+      current_user = Fabricate(:user)
+      current_user.settings['flavour'] = 'glitch'
+      sign_in current_user
+
+      allow(Setting).to receive(:[]).with('skin').and_return 'default'
+      allow(Setting).to receive(:[]).with('flavour').and_return 'vanilla'
+
+      expect(controller.view_context.current_flavour).to eq 'glitch'
+    end
+  end
+
   context 'ActionController::RoutingError' do
     subject do
       routes.draw { get 'routing_error' => 'anonymous#routing_error' }