about summary refs log tree commit diff
path: root/spec/serializers/rest
diff options
context:
space:
mode:
authorClaire <claire.github-309c@sitedethib.com>2023-02-18 22:05:11 +0100
committerGitHub <noreply@github.com>2023-02-18 22:05:11 +0100
commit4c68189d2b8b6a9a74fc13862b11bf6c6d523409 (patch)
treedfeaba762dfa49844cc5cf6140deb30874734a46 /spec/serializers/rest
parent2be88d1930433f55e5ae17174f3711cefb3d5158 (diff)
parentea9a1d79df60749eb21fb592c608dcaa4c935c75 (diff)
Merge pull request #2112 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'spec/serializers/rest')
-rw-r--r--spec/serializers/rest/account_serializer_spec.rb37
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