Sha256: a1cadf99ace83bd431711f97c2e96551c4f39cc003f3a8aeb1a6f2edbab0c423

Contents?: true

Size: 974 Bytes

Versions: 5

Compression:

Stored size: 974 Bytes

Contents

require 'spec_helper'

describe Encore::Persister do
  let(:persister) { Encore::Persister::Instance }
  let(:persist!) { persister.new(model, params, options).persist! }

  let(:run_migrations!) do
    run_migration do
      create_table(:users, force: true) do |t|
        t.string :name, default: nil
        t.integer :creator_id
      end
    end
  end

  let(:spawn_objects!) do
    spawn_model('User')
    spawn_serializer('UserSerializer')
  end

  let(:model) { User }

  before do
    run_migrations!
    spawn_objects!
  end

  context 'single inject' do
    let(:options) do
      {
        inject_params: {
          creator_id: '1'
        }
      }
    end
    let(:params) do
      [{
        name: 'Allan'
      }]
    end

    it { expect { persist! }.to change { model.count }.by(1) }
    it { expect { persist! }.to change { model.first.try(:name) }.to('Allan') }
    it { expect { persist! }.to change { model.first.try(:creator_id) }.to(1) }
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
encore-0.2.3 spec/encore/persister/param_injection_spec.rb
encore-0.2.2 spec/encore/persister/param_injection_spec.rb
encore-0.2.1 spec/encore/persister/param_injection_spec.rb
encore-0.2 spec/encore/persister/param_injection_spec.rb
encore-0.1 spec/encore/persister/param_injection_spec.rb