diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-10-24 18:11:29 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-10-24 18:11:29 +0300 |
commit | cb9b55e662d4164d913ef7031adc135d3ea4d9f0 (patch) | |
tree | 0da3d639eb5f981cc73f3c72648351e56fedd971 /spec/support/shared_examples | |
parent | d5f67e75b6ef8ebc1b304589005ccd91ea6674ff (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/support/shared_examples')
-rw-r--r-- | spec/support/shared_examples/requests/access_tokens_controller_shared_examples.rb | 74 |
1 files changed, 72 insertions, 2 deletions
diff --git a/spec/support/shared_examples/requests/access_tokens_controller_shared_examples.rb b/spec/support/shared_examples/requests/access_tokens_controller_shared_examples.rb index 59e641e2af6..c83abdea0eb 100644 --- a/spec/support/shared_examples/requests/access_tokens_controller_shared_examples.rb +++ b/spec/support/shared_examples/requests/access_tokens_controller_shared_examples.rb @@ -4,7 +4,7 @@ RSpec.shared_examples 'GET resource access tokens available' do let_it_be(:active_resource_access_token) { create(:personal_access_token, user: bot_user) } it 'retrieves active resource access tokens' do - subject + get_access_tokens token_entities = assigns(:active_resource_access_tokens) expect(token_entities.length).to eq(1) @@ -12,10 +12,80 @@ RSpec.shared_examples 'GET resource access tokens available' do end it 'lists all available scopes' do - subject + get_access_tokens expect(assigns(:scopes)).to eq(Gitlab::Auth.resource_bot_scopes) end + + it 'returns for json response' do + get_access_tokens_json + + expect(json_response.count).to eq(1) + end + + context "when access_tokens are paginated" do + before do + allow(Kaminari.config).to receive(:default_per_page).and_return(1) + create(:personal_access_token, user: bot_user) + end + + it "returns paginated response", :aggregate_failures do + get_access_tokens_with_page + expect(assigns(:active_resource_access_tokens).count).to eq(1) + + expect_header('X-Per-Page', '1') + expect_header('X-Page', '1') + expect_header('X-Next-Page', '2') + expect_header('X-Total', '2') + end + end + + context "when access_token_pagination feature flag is disabled" do + before do + stub_feature_flags(access_token_pagination: false) + create(:personal_access_token, user: bot_user) + end + + it "returns all tokens in system" do + get_access_tokens_with_page + expect(assigns(:active_resource_access_tokens).count).to eq(2) + end + end + + context "as tokens returned are ordered" do + let(:expires_1_day_from_now) { 1.day.from_now.to_date } + let(:expires_2_day_from_now) { 2.days.from_now.to_date } + + before do + create(:personal_access_token, user: bot_user, name: "Token1", expires_at: expires_1_day_from_now) + create(:personal_access_token, user: bot_user, name: "Token2", expires_at: expires_2_day_from_now) + end + + it "orders token list ascending on expires_at" do + get_access_tokens + + first_token = assigns(:active_resource_access_tokens).first.as_json + expect(first_token['name']).to eq("Token1") + expect(first_token['expires_at']).to eq(expires_1_day_from_now.strftime("%Y-%m-%d")) + end + + it "orders tokens on id in case token has same expires_at" do + create(:personal_access_token, user: bot_user, name: "Token3", expires_at: expires_1_day_from_now) + get_access_tokens + + first_token = assigns(:active_resource_access_tokens).first.as_json + expect(first_token['name']).to eq("Token3") + expect(first_token['expires_at']).to eq(expires_1_day_from_now.strftime("%Y-%m-%d")) + + second_token = assigns(:active_resource_access_tokens).second.as_json + expect(second_token['name']).to eq("Token1") + expect(second_token['expires_at']).to eq(expires_1_day_from_now.strftime("%Y-%m-%d")) + end + end + + def expect_header(header_name, header_val) + expect(response.headers[header_name]).to eq(header_val) + end end RSpec.shared_examples 'POST resource access tokens available' do |