Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers/profiles/personal_access_tokens_controller_spec.rb')
-rw-r--r--spec/controllers/profiles/personal_access_tokens_controller_spec.rb95
1 files changed, 23 insertions, 72 deletions
diff --git a/spec/controllers/profiles/personal_access_tokens_controller_spec.rb b/spec/controllers/profiles/personal_access_tokens_controller_spec.rb
index 8dee0490fd6..044ce8f397a 100644
--- a/spec/controllers/profiles/personal_access_tokens_controller_spec.rb
+++ b/spec/controllers/profiles/personal_access_tokens_controller_spec.rb
@@ -3,11 +3,11 @@
require 'spec_helper'
RSpec.describe Profiles::PersonalAccessTokensController do
- let(:user) { create(:user) }
+ let(:access_token_user) { create(:user) }
let(:token_attributes) { attributes_for(:personal_access_token) }
before do
- sign_in(user)
+ sign_in(access_token_user)
end
describe '#create' do
@@ -49,13 +49,27 @@ RSpec.describe Profiles::PersonalAccessTokensController do
end
end
+ describe 'GET /-/profile/personal_access_tokens' do
+ let(:get_access_tokens) do
+ get :index
+ response
+ end
+
+ subject(:get_access_tokens_with_page) do
+ get :index, params: { page: 1 }
+ response
+ end
+
+ it_behaves_like 'GET access tokens are paginated and ordered'
+ end
+
describe '#index' do
- let!(:active_personal_access_token) { create(:personal_access_token, user: user) }
+ let!(:active_personal_access_token) { create(:personal_access_token, user: access_token_user) }
before do
# Impersonation and inactive personal tokens are ignored
- create(:personal_access_token, :impersonation, user: user)
- create(:personal_access_token, :revoked, user: user)
+ create(:personal_access_token, :impersonation, user: access_token_user)
+ create(:personal_access_token, :revoked, user: access_token_user)
get :index
end
@@ -63,7 +77,7 @@ RSpec.describe Profiles::PersonalAccessTokensController do
active_personal_access_tokens_detail =
::PersonalAccessTokenSerializer.new.represent([active_personal_access_token])
- expect(assigns(:active_personal_access_tokens).to_json).to eq(active_personal_access_tokens_detail.to_json)
+ expect(assigns(:active_access_tokens).to_json).to eq(active_personal_access_tokens_detail.to_json)
end
it "sets PAT name and scopes" do
@@ -86,73 +100,10 @@ RSpec.describe Profiles::PersonalAccessTokensController do
expect(response).to have_gitlab_http_status(:not_found)
end
- context "access_token_pagination feature flag is enabled" do
- before do
- stub_feature_flags(access_token_pagination: true)
- allow(Kaminari.config).to receive(:default_per_page).and_return(1)
- create(:personal_access_token, user: user)
- end
-
- it "returns paginated response" do
- get :index, params: { page: 1 }
- expect(assigns(:active_personal_access_tokens).count).to eq(1)
- end
-
- it 'adds appropriate headers' do
- get :index, params: { page: 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 "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: user, name: "Token1", expires_at: expires_1_day_from_now)
- create(:personal_access_token, user: user, name: "Token2", expires_at: expires_2_day_from_now)
- end
-
- it "orders token list ascending on expires_at" do
- get :index
-
- first_token = assigns(:active_personal_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: user, name: "Token3", expires_at: expires_1_day_from_now)
-
- get :index
-
- first_token = assigns(:active_personal_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_personal_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
-
- context "access_token_pagination feature flag is disabled" do
- before do
- stub_feature_flags(access_token_pagination: false)
- create(:personal_access_token, user: user)
- end
+ it 'returns tokens for json format' do
+ get :index, params: { format: :json }
- it "returns all tokens in system" do
- get :index, params: { page: 1 }
- expect(assigns(:active_personal_access_tokens).count).to eq(2)
- end
+ expect(json_response.count).to eq(1)
end
end
-
- def expect_header(header_name, header_val)
- expect(response.headers[header_name]).to eq(header_val)
- end
end