about summary refs log tree commit diff
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/controllers/auth/confirmations_controller_spec.rb43
-rw-r--r--spec/controllers/settings/preferences_controller_spec.rb4
-rw-r--r--spec/controllers/shares_controller_spec.rb22
-rw-r--r--spec/models/status_spec.rb16
-rw-r--r--spec/models/user_spec.rb4
5 files changed, 77 insertions, 12 deletions
diff --git a/spec/controllers/auth/confirmations_controller_spec.rb b/spec/controllers/auth/confirmations_controller_spec.rb
index b3af5e0ec..35eed4f51 100644
--- a/spec/controllers/auth/confirmations_controller_spec.rb
+++ b/spec/controllers/auth/confirmations_controller_spec.rb
@@ -3,6 +3,8 @@
 require 'rails_helper'
 
 describe Auth::ConfirmationsController, type: :controller do
+  render_views
+
   describe 'GET #new' do
     it 'returns http success' do
       @request.env['devise.mapping'] = Devise.mappings[:user]
@@ -48,4 +50,45 @@ describe Auth::ConfirmationsController, type: :controller do
       end
     end
   end
+
+  describe 'GET #finish_signup' do
+    subject { get :finish_signup }
+
+    let(:user) { Fabricate(:user) }
+    before do
+      sign_in user, scope: :user
+      @request.env['devise.mapping'] = Devise.mappings[:user]
+    end
+
+    it 'renders finish_signup' do
+      is_expected.to render_template :finish_signup
+      expect(assigns(:user)).to have_attributes id: user.id
+    end
+  end
+
+  describe 'PATCH #finish_signup' do
+    subject { patch :finish_signup, params: { user: { email: email }} }
+
+    let(:user) { Fabricate(:user) }
+    before do
+      sign_in user, scope: :user
+      @request.env['devise.mapping'] = Devise.mappings[:user]
+    end
+
+    context 'when email is valid' do
+      let(:email) { 'new_' + user.email }
+
+      it 'redirects to root_path' do
+        is_expected.to redirect_to root_path
+      end
+    end
+
+    context 'when email is invalid' do
+      let(:email) { '' }
+
+      it 'renders finish_signup' do
+        is_expected.to render_template :finish_signup
+      end
+    end
+  end
 end
diff --git a/spec/controllers/settings/preferences_controller_spec.rb b/spec/controllers/settings/preferences_controller_spec.rb
index 7877c7362..f2028cf39 100644
--- a/spec/controllers/settings/preferences_controller_spec.rb
+++ b/spec/controllers/settings/preferences_controller_spec.rb
@@ -18,12 +18,12 @@ describe Settings::PreferencesController do
 
   describe 'PUT #update' do
     it 'updates the user record' do
-      put :update, params: { user: { locale: 'en', filtered_languages: ['es', 'fr', ''] } }
+      put :update, params: { user: { locale: 'en', chosen_languages: ['es', 'fr', ''] } }
 
       expect(response).to redirect_to(settings_preferences_path)
       user.reload
       expect(user.locale).to eq 'en'
-      expect(user.filtered_languages).to eq ['es', 'fr']
+      expect(user.chosen_languages).to eq ['es', 'fr']
     end
 
     it 'updates user settings' do
diff --git a/spec/controllers/shares_controller_spec.rb b/spec/controllers/shares_controller_spec.rb
new file mode 100644
index 000000000..a74e9af56
--- /dev/null
+++ b/spec/controllers/shares_controller_spec.rb
@@ -0,0 +1,22 @@
+require 'rails_helper'
+
+describe SharesController do
+  render_views
+
+  let(:user) { Fabricate(:user) }
+  before { sign_in user }
+
+  describe 'GTE #show' do
+    subject(:initial_state_json) { JSON.parse(assigns(:initial_state_json), symbolize_names: true) }
+    subject(:body_classes) { assigns(:body_classes) }
+
+    before { get :show, params: { title: 'test title', text: 'test text', url: 'url1 url2' } }
+
+    it 'assigns json' do
+      expect(response).to have_http_status :ok
+      expect(initial_state_json[:compose][:text]).to eq 'test title test text url1 url2'
+      expect(initial_state_json[:meta][:me]).to eq user.account.id.to_s
+      expect(body_classes).to eq 'modal-layout compose-standalone'
+    end
+  end
+end
diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb
index 14233e824..0e2bb0675 100644
--- a/spec/models/status_spec.rb
+++ b/spec/models/status_spec.rb
@@ -296,18 +296,18 @@ RSpec.describe Status, type: :model do
     end
   end
 
-  describe '.not_in_filtered_languages' do
+  describe '.in_chosen_languages' do
     context 'for accounts with language filters' do
-      let(:user) { Fabricate(:user, filtered_languages: ['en']) }
+      let(:user) { Fabricate(:user, chosen_languages: ['en']) }
 
-      it 'does not include statuses in filtered languages' do
-        status = Fabricate(:status, language: 'en')
-        expect(Status.not_in_filtered_languages(user.account)).not_to include status
+      it 'does not include statuses in not in chosen languages' do
+        status = Fabricate(:status, language: 'de')
+        expect(Status.in_chosen_languages(user.account)).not_to include status
       end
 
       it 'includes status with unknown language' do
         status = Fabricate(:status, language: nil)
-        expect(Status.not_in_filtered_languages(user.account)).to include status
+        expect(Status.in_chosen_languages(user.account)).to include status
       end
     end
   end
@@ -555,7 +555,7 @@ RSpec.describe Status, type: :model do
 
       context 'with language preferences' do
         it 'excludes statuses in languages not allowed by the account user' do
-          user = Fabricate(:user, filtered_languages: [:fr])
+          user = Fabricate(:user, chosen_languages: [:en, :es])
           @account.update(user: user)
           en_status = Fabricate(:status, language: 'en')
           es_status = Fabricate(:status, language: 'es')
@@ -568,7 +568,7 @@ RSpec.describe Status, type: :model do
         end
 
         it 'includes all languages when user does not have a setting' do
-          user = Fabricate(:user, filtered_languages: [])
+          user = Fabricate(:user, chosen_languages: nil)
           @account.update(user: user)
 
           en_status = Fabricate(:status, language: 'en')
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index cc8d88cc8..93a6c26fb 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -41,9 +41,9 @@ RSpec.describe User, type: :model do
     end
 
     it 'cleans out empty string from languages' do
-      user = Fabricate.build(:user, filtered_languages: [''])
+      user = Fabricate.build(:user, chosen_languages: [''])
       user.valid?
-      expect(user.filtered_languages).to eq []
+      expect(user.chosen_languages).to eq nil
     end
   end