Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
getfitter-core / spec / core / user_merge_concern_spec.rb
Size: Mime:
require 'rails_helper'

RSpec.describe Core::UserMergeConcern do
  it 'merges the attributes' do
    source_user = create(:core_user)
    destination_user = create(:core_user)

    destination_user.merge!(source_user)

    expect(destination_user.name).to eq source_user.name
    expect(destination_user.email).to eq source_user.email
    expect(destination_user.valid_password?('password')).to be_truthy
    expect(destination_user.date_of_birth).to eq source_user.date_of_birth
    expect(destination_user.staff).to eq source_user.staff
    expect(destination_user.notes).to eq source_user.notes
    expect(destination_user.medical_issues).to eq source_user.medical_issues
  end

  it 'merges the organisation' do
    source_user = create(:core_user)
    organisation = create(:core_organisation)
    source_user.organisation = organisation
    destination_user = create(:core_user)

    destination_user.merge!(source_user)

    destination_user.reload
    expect(destination_user.organisation).to eq organisation
  end

  it 'merges the bookings' do
    source_user = create(:core_user)
    booking = create(:core_booking, user: source_user)
    source_user.bookings << booking

    destination_user = create(:core_user)

    destination_user.merge!(source_user)

    destination_user.reload
    expect(destination_user.bookings).to eq [booking]
  end

  it 'merges the pass_purchases' do
    source_user = create(:core_user)
    pass_purchase = create(:core_pass_purchase, user: source_user)
    destination_user = create(:core_user)

    destination_user.merge!(source_user)

    destination_user.reload
    expect(destination_user.pass_purchases).to eq [pass_purchase]
  end

  it 'merges the oauth_applications' do
    source_user = create(:core_user)
    application = create(:oauth_application, owner: source_user)
    destination_user = create(:core_user)

    destination_user.merge!(source_user)

    destination_user.reload
    expect(destination_user.oauth_applications).to eq [application]
  end
end