Sha256: 56a498bfc47443e72eabd8fa52e7f1542c36c687cb5fb4e55ac7dc26adee8f24

Contents?: true

Size: 1.19 KB

Versions: 3

Compression:

Stored size: 1.19 KB

Contents

# frozen_string_literal: true

# generado con pg_rails

require 'rails_helper'

RSpec.describe User do
  let(:user) { create(:user) }

  it 'se persiste' do
    expect(user).to be_persisted
  end

  it do
    expect(user.default_account).to be_present
  end

  context 'si es orphan' do
    let(:user) { create(:user, orphan: true) }

    it do
      expect(user.accounts).to be_empty
    end

    it do
      expect { user.default_account }.to raise_error(User::Error)
    end
  end

  context 'Si falla la creación de cuenta, que rollbackee la transaction de create user' do
    # rubocop:disable Lint/SuppressedException
    subject do
      user.save
    rescue User::Error
    end
    # rubocop:enable Lint/SuppressedException

    let(:user) do
      build(:user)
    end

    before do
      # rubocop:disable RSpec/MessageChain
      allow(user).to receive_message_chain(:user_accounts, :create) {
                       instance_double(UserAccount, persisted?: false)
                     }
      # rubocop:enable RSpec/MessageChain
    end

    it do
      expect { subject }.not_to change(described_class, :count)
    end

    it do
      subject
      expect(user).not_to be_persisted
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
pg_rails-7.5.2 pg_engine/spec/models/user_spec.rb
pg_rails-7.5.1 pg_engine/spec/models/user_spec.rb
pg_rails-7.5.0 pg_engine/spec/models/user_spec.rb