diff options
Diffstat (limited to 'spec/serializers')
-rw-r--r-- | spec/serializers/impersonation_access_token_entity_spec.rb | 26 | ||||
-rw-r--r-- | spec/serializers/impersonation_access_token_serializer_spec.rb | 20 |
2 files changed, 46 insertions, 0 deletions
diff --git a/spec/serializers/impersonation_access_token_entity_spec.rb b/spec/serializers/impersonation_access_token_entity_spec.rb new file mode 100644 index 00000000000..e8517779c0d --- /dev/null +++ b/spec/serializers/impersonation_access_token_entity_spec.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true +require 'spec_helper' + +RSpec.describe ImpersonationAccessTokenEntity do + let_it_be(:user) { create(:user) } + let_it_be(:token) { create(:personal_access_token, :impersonation, user: user) } + + subject(:json) { described_class.new(token).as_json } + + it 'has the correct attributes' do + expected_revoke_path = Gitlab::Routing.url_helpers + .revoke_admin_user_impersonation_token_path( + { user_id: user, id: token }) + + expect(json).to( + include( + id: token.id, + name: token.name, + scopes: token.scopes, + user_id: token.user_id, + revoke_path: expected_revoke_path + )) + + expect(json).not_to include(:token) + end +end diff --git a/spec/serializers/impersonation_access_token_serializer_spec.rb b/spec/serializers/impersonation_access_token_serializer_spec.rb new file mode 100644 index 00000000000..0c8cebb94b1 --- /dev/null +++ b/spec/serializers/impersonation_access_token_serializer_spec.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true +require 'spec_helper' + +RSpec.describe ImpersonationAccessTokenSerializer do + subject(:serializer) { described_class.new } + + describe '#represent' do + it 'can render a single token' do + token = create(:personal_access_token) + + expect(serializer.represent(token)).to be_kind_of(Hash) + end + + it 'can render a collection of tokens' do + tokens = create_list(:personal_access_token, 2) + + expect(serializer.represent(tokens)).to be_kind_of(Array) + end + end +end |