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) }