diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-07-20 15:40:28 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-07-20 15:40:28 +0000 |
commit | b595cb0c1dec83de5bdee18284abe86614bed33b (patch) | |
tree | 8c3d4540f193c5ff98019352f554e921b3a41a72 /spec/models/oauth_access_token_spec.rb | |
parent | 2f9104a328fc8a4bddeaa4627b595166d24671d0 (diff) | |
download | gitlab-ce-b595cb0c1dec83de5bdee18284abe86614bed33b.tar.gz |
Add latest changes from gitlab-org/gitlab@15-2-stable-eev15.2.0-rc42
Diffstat (limited to 'spec/models/oauth_access_token_spec.rb')
-rw-r--r-- | spec/models/oauth_access_token_spec.rb | 48 |
1 files changed, 33 insertions, 15 deletions
diff --git a/spec/models/oauth_access_token_spec.rb b/spec/models/oauth_access_token_spec.rb index 65a7f6410cf..2b47da1ebe1 100644 --- a/spec/models/oauth_access_token_spec.rb +++ b/spec/models/oauth_access_token_spec.rb @@ -7,22 +7,40 @@ RSpec.describe OauthAccessToken do let(:app_one) { create(:oauth_application) } let(:app_two) { create(:oauth_application) } let(:app_three) { create(:oauth_application) } - let(:tokens) { described_class.all } + let(:token) { create(:oauth_access_token, application_id: app_one.id) } - before do - create(:oauth_access_token, application_id: app_one.id) - create_list(:oauth_access_token, 2, resource_owner: user, application_id: app_two.id) - end + describe 'scopes' do + describe '.distinct_resource_owner_counts' do + let(:tokens) { described_class.all } + + before do + token + create_list(:oauth_access_token, 2, resource_owner: user, application_id: app_two.id) + end + + it 'returns unique owners' do + expect(tokens.count).to eq(3) + expect(tokens.distinct_resource_owner_counts([app_one])).to eq({ app_one.id => 1 }) + expect(tokens.distinct_resource_owner_counts([app_two])).to eq({ app_two.id => 1 }) + expect(tokens.distinct_resource_owner_counts([app_three])).to eq({}) + expect(tokens.distinct_resource_owner_counts([app_one, app_two])) + .to eq({ + app_one.id => 1, + app_two.id => 1 + }) + end + end + + describe '.latest_per_application' do + let!(:app_two_token1) { create(:oauth_access_token, application: app_two) } + let!(:app_two_token2) { create(:oauth_access_token, application: app_two) } + let!(:app_three_token1) { create(:oauth_access_token, application: app_three) } + let!(:app_three_token2) { create(:oauth_access_token, application: app_three) } - it 'returns unique owners' do - expect(tokens.count).to eq(3) - expect(tokens.distinct_resource_owner_counts([app_one])).to eq({ app_one.id => 1 }) - expect(tokens.distinct_resource_owner_counts([app_two])).to eq({ app_two.id => 1 }) - expect(tokens.distinct_resource_owner_counts([app_three])).to eq({}) - expect(tokens.distinct_resource_owner_counts([app_one, app_two])) - .to eq({ - app_one.id => 1, - app_two.id => 1 - }) + it 'returns only the latest token for each application' do + expect(described_class.latest_per_application.map(&:id)) + .to match_array([app_two_token2.id, app_three_token2.id]) + end + end end end |