Files
gitlab-foss/spec/serializers/access_token_entity_base_spec.rb
2025-04-17 15:09:43 +00:00

52 lines
1.2 KiB
Ruby

# frozen_string_literal: true
require 'spec_helper'
RSpec.describe AccessTokenEntityBase do
let_it_be(:user) { create(:user) }
let_it_be(:token) { create(:personal_access_token, user: user) }
subject(:json) { described_class.new(token).as_json }
it 'has the correct attributes' do
expect(json).to(
include(
id: token.id,
name: token.name,
revoked: false,
created_at: token.created_at,
scopes: token.scopes,
expires_at: token.expires_at.iso8601,
last_used_ips: token.last_used_ips,
expired: false,
expires_soon: false
))
expect(json).not_to include(:token)
end
context 'when token has no Last Used IPs' do
before do
token.last_used_ips.delete_all
end
it 'returns an empty array' do
expect(json[:last_used_ips]).to eq([])
end
end
context 'when token has last_used_ips' do
let(:current_ip_address) { '127.0.0.1' }
before do
token.last_used_ips << Authn::PersonalAccessTokenLastUsedIp.new(
organization: token.organization,
ip_address: current_ip_address)
end
it 'returns an array containing current_ip_address' do
expect(json[:last_used_ips]).to include(current_ip_address)
end
end
end