about summary refs log tree commit diff
diff options
context:
space:
mode:
authorClaire <claire.github-309c@sitedethib.com>2023-02-13 13:23:59 +0100
committerGitHub <noreply@github.com>2023-02-13 13:23:59 +0100
commitc55568c75a2754d1a2d9383b4e4e7147ea2e9ed5 (patch)
tree3088738fb8ae5fe5e7f04ef982b0312e3c757274
parent7c5d396fcad1267872dd7ed00204f076e52c689c (diff)
Add tests for `REST::AccountSerializer` (#23319)
-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