diff options
author | Claire <claire.github-309c@sitedethib.com> | 2023-02-13 13:23:59 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-13 13:23:59 +0100 |
commit | c55568c75a2754d1a2d9383b4e4e7147ea2e9ed5 (patch) | |
tree | 3088738fb8ae5fe5e7f04ef982b0312e3c757274 /spec | |
parent | 7c5d396fcad1267872dd7ed00204f076e52c689c (diff) |
Add tests for `REST::AccountSerializer` (#23319)
Diffstat (limited to 'spec')
-rw-r--r-- | spec/serializers/rest/account_serializer_spec.rb | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/spec/serializers/rest/account_serializer_spec.rb b/spec/serializers/rest/account_serializer_spec.rb new file mode 100644 index 000000000..ce29df3a7 --- /dev/null +++ b/spec/serializers/rest/account_serializer_spec.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe REST::AccountSerializer do + let(:role) { Fabricate(:user_role, name: 'Role', highlighted: true) } + let(:user) { Fabricate(:user, role: role) } + let(:account) { user.account} + + subject { JSON.parse(ActiveModelSerializers::SerializableResource.new(account, serializer: REST::AccountSerializer).to_json) } + + context 'when the account is suspended' do + before do + account.suspend! + end + + it 'returns empty roles' do + expect(subject['roles']).to eq [] + end + end + + context 'when the account has a highlighted role' do + let(:role) { Fabricate(:user_role, name: 'Role', highlighted: true) } + + it 'returns the expected role' do + expect(subject['roles'].first).to include({ 'name' => 'Role' }) + end + end + + context 'when the account has a non-highlighted role' do + let(:role) { Fabricate(:user_role, name: 'Role', highlighted: false) } + + it 'returns empty roles' do + expect(subject['roles']).to eq [] + end + end +end |