summaryrefslogtreecommitdiff
path: root/spec/services/users/set_status_service_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/services/users/set_status_service_spec.rb')
-rw-r--r--spec/services/users/set_status_service_spec.rb39
1 files changed, 29 insertions, 10 deletions
diff --git a/spec/services/users/set_status_service_spec.rb b/spec/services/users/set_status_service_spec.rb
index 69cd647eaeb..2c776a0eeb4 100644
--- a/spec/services/users/set_status_service_spec.rb
+++ b/spec/services/users/set_status_service_spec.rb
@@ -31,19 +31,28 @@ RSpec.describe Users::SetStatusService do
expect(service.execute).to be(true)
end
+ context 'when setting availability to not_set' do
+ before do
+ params[:availability] = 'not_set'
+
+ create(:user_status, user: current_user, availability: 'busy')
+ end
+
+ it 'updates the availability' do
+ expect { service.execute }.to change { current_user.status.availability }.from('busy').to('not_set')
+ end
+ end
+
context 'when the given availability value is not valid' do
- let(:params) { { availability: 'not a valid value' } }
+ before do
+ params[:availability] = 'not a valid value'
+ end
it 'does not update the status' do
user_status = create(:user_status, user: current_user)
expect { service.execute }.not_to change { user_status.reload }
end
-
- it 'returns false' do
- create(:user_status, user: current_user)
- expect(service.execute).to be(false)
- end
end
context 'for another user' do
@@ -69,11 +78,21 @@ RSpec.describe Users::SetStatusService do
context 'without params' do
let(:params) { {} }
- it 'deletes the status' do
- status = create(:user_status, user: current_user)
+ shared_examples 'removes user status record' do
+ it 'deletes the status' do
+ status = create(:user_status, user: current_user)
+
+ expect { service.execute }
+ .to change { current_user.reload.status }.from(status).to(nil)
+ end
+ end
+
+ it_behaves_like 'removes user status record'
+
+ context 'when not_set is given for availability' do
+ let(:params) { { availability: 'not_set' } }
- expect { service.execute }
- .to change { current_user.reload.status }.from(status).to(nil)
+ it_behaves_like 'removes user status record'
end
end
end