Sha256: 4d36cd0c80fcca4b4cd87fa6059bb36a670e554d60016ca781508a12d2b5fc89

Contents?: true

Size: 1.77 KB

Versions: 20

Compression:

Stored size: 1.77 KB

Contents

# frozen_string_literal: true

require 'rails_helper'

RSpec.describe 'Additional Mutations' do
  include_context 'with graphql query request'

  let(:name)                  { Faker::Name.name }
  let(:password)              { Faker::Internet.password }
  let(:password_confirmation) { password }
  let(:email)                 { Faker::Internet.email }

  context 'when using the user model' do
    let(:query) do
      <<-GRAPHQL
        mutation {
          registerConfirmedUser(
            email:                "#{email}",
            name:                 "#{name}",
            password:             "#{password}",
            passwordConfirmation: "#{password_confirmation}"
          ) {
            user {
              email
              name
            }
          }
        }
      GRAPHQL
    end

    context 'when params are correct' do
      it 'creates a new resource that is already confirmed' do
        expect { post_request }.to(
          change(User, :count).by(1)
          .and(not_change(ActionMailer::Base.deliveries, :count))
        )

        user = User.last

        expect(user).to be_confirmed
        expect(json_response[:data][:registerConfirmedUser]).to include(
          user: {
            email: email,
            name:  name
          }
        )
      end
    end

    context 'when params are incorrect' do
      let(:password_confirmation) { 'not the same' }

      it 'returns descriptive errors' do
        expect { post_request }.to not_change(User, :count)

        expect(json_response[:errors]).to contain_exactly(
          hash_including(
            message:    'Custom registration failed',
            extensions: { code: 'USER_ERROR', detailed_errors: ["Password confirmation doesn't match Password"] }
          )
        )
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
graphql_devise-2.0.0 spec/requests/mutations/additional_mutations_spec.rb
graphql_devise-1.4.0 spec/requests/mutations/additional_mutations_spec.rb
graphql_devise-1.3.0 spec/requests/mutations/additional_mutations_spec.rb
graphql_devise-1.2.0 spec/requests/mutations/additional_mutations_spec.rb
graphql_devise-1.1.1 spec/requests/mutations/additional_mutations_spec.rb
graphql_devise-1.1.0 spec/requests/mutations/additional_mutations_spec.rb
graphql_devise-1.0.1 spec/requests/mutations/additional_mutations_spec.rb
graphql_devise-1.0.0 spec/requests/mutations/additional_mutations_spec.rb
graphql_devise-0.18.2 spec/requests/mutations/additional_mutations_spec.rb
graphql_devise-0.18.1 spec/requests/mutations/additional_mutations_spec.rb
graphql_devise-0.18.0 spec/requests/mutations/additional_mutations_spec.rb
graphql_devise-0.17.1 spec/requests/mutations/additional_mutations_spec.rb
graphql_devise-0.17.0 spec/requests/mutations/additional_mutations_spec.rb
graphql_devise-0.16.0 spec/requests/mutations/additional_mutations_spec.rb
graphql_devise-0.15.0 spec/requests/mutations/additional_mutations_spec.rb
graphql_devise-0.14.3 spec/requests/mutations/additional_mutations_spec.rb
graphql_devise-0.14.2 spec/requests/mutations/additional_mutations_spec.rb
graphql_devise-0.14.1 spec/requests/mutations/additional_mutations_spec.rb
graphql_devise-0.14.0 spec/requests/mutations/additional_mutations_spec.rb
graphql_devise-0.13.6 spec/requests/mutations/additional_mutations_spec.rb