diff --git a/app/graphql/mutations/users/personal_access_tokens/create.rb b/app/graphql/mutations/users/personal_access_tokens/create.rb
index d6e05019ea613113e4ee809148c258c7412fe0c9..8765c23cf7e4317a896022de97598e1dbf9313b0 100644
--- a/app/graphql/mutations/users/personal_access_tokens/create.rb
+++ b/app/graphql/mutations/users/personal_access_tokens/create.rb
@@ -7,7 +7,7 @@ class Create < BaseMutation
graphql_name 'PersonalAccessTokenCreate'
description 'Creates a personal access token for the current user.'
- field :token, Types::Authz::PersonalAccessTokens::PersonalAccessTokenType,
+ field :token, GraphQL::Types::String,
null: true,
description: 'Created personal access token.'
@@ -52,7 +52,7 @@ def resolve(**args)
return { errors: Array(response.message) } if response.error?
- { token: token, errors: [] }
+ { token: token.token, errors: [] }
end
private
diff --git a/doc/api/graphql/reference/_index.md b/doc/api/graphql/reference/_index.md
index 5f83dcda500369c5a475769bafc66d81a9786e39..5fc38d10cc31932bdaec15102111c6e6be203db3 100644
--- a/doc/api/graphql/reference/_index.md
+++ b/doc/api/graphql/reference/_index.md
@@ -10342,7 +10342,7 @@ Input type: `PersonalAccessTokenCreateInput`
| ---- | ---- | ----------- |
| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
| `errors` | [`[String!]!`](#string) | Errors encountered during the mutation. |
-| `token` | [`PersonalAccessToken`](#personalaccesstoken) | Created personal access token. |
+| `token` | [`String`](#string) | Created personal access token. |
### `Mutation.pipelineCancel`
diff --git a/spec/requests/api/graphql/mutations/users/personal_access_tokens/create_spec.rb b/spec/requests/api/graphql/mutations/users/personal_access_tokens/create_spec.rb
index 8d6802f89b81e6f211541f4727a435e7d0c64f96..b6409450028115738f98d7ecc1b67f2969d3bfe8 100644
--- a/spec/requests/api/graphql/mutations/users/personal_access_tokens/create_spec.rb
+++ b/spec/requests/api/graphql/mutations/users/personal_access_tokens/create_spec.rb
@@ -35,19 +35,22 @@
let(:mutation_request) { post_graphql_mutation(mutation, current_user:, token:) }
shared_examples 'creates a personal access token and granular scopes with correct attributes' do
- specify do
+ specify :aggregate_failures do
expect { mutation_request }.to change { current_user.personal_access_tokens.count }.by(1)
expect(graphql_errors).to be_nil
- expect(graphql_data_at(:personalAccessTokenCreate, :token)).to include(
+ created_token = current_user.personal_access_tokens.last
+
+ expect(graphql_data_at(:personalAccessTokenCreate, :token)).to be_present
+
+ created_token_attributes = created_token.attributes
+ expect(created_token_attributes).to include(
'name' => input['name'],
'description' => input['description'],
- 'expiresAt' => input['expiresAt'],
'granular' => true
)
-
- created_token = current_user.personal_access_tokens.last
+ expect(created_token_attributes['expires_at'].to_s).to eq input['expiresAt']
expect(created_token.granular_scopes.count).to eq(expected_granular_scope_attrs.size)
expect(created_token.granular_scopes.map(&:attributes)).to include(
*expected_granular_scope_attrs.map { |attrs| a_hash_including(attrs.stringify_keys) }