Sha256: 0d887498f0a2d149f4250dd512bc4490feff4811fa2db0e5af33ba84e479884a

Contents?: true

Size: 865 Bytes

Versions: 10

Compression:

Stored size: 865 Bytes

Contents

require 'rails_helper'

RSpec.describe LabTech::DefaultCleaner, type: :model do
  subject(:cleaner) { LabTech::DefaultCleaner }

  def clean(value)
    cleaner.call(value)
  end

  it "returns an integer as itself" do
    expect( clean(42) ).to eq( 42 )
  end

  it "returns an AR instance as a pair of [ class_name, id ]" do
    exp = LabTech::Experiment.create(name: "whatever")
    expect( clean(exp) ).to eq( [ "LabTech::Experiment", exp.id ] )
  end

  it "returns an array of integers as itself" do
    expect( clean( [1,2,3] ) ).to eq( [1,2,3] )
  end

  it "returns an array of AR instances as a hash containing a list of IDs keyed by class name" do
    e1, e2 = 2.times.map {|i| LabTech::Experiment.create(name: "Experiment #{i}") }
    expect( clean( [e1, e2] ) ).to eq(
      {
        "LabTech::Experiment" => [ e1.id, e2.id ],
      }
    )
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
lab_tech-0.1.9 spec/models/lab_tech/default_cleaner_spec.rb
lab_tech-0.1.8 spec/models/lab_tech/default_cleaner_spec.rb
lab_tech-0.1.7 spec/models/lab_tech/default_cleaner_spec.rb
lab_tech-0.1.6 spec/models/lab_tech/default_cleaner_spec.rb
lab_tech-0.1.5 spec/models/lab_tech/default_cleaner_spec.rb
lab_tech-0.1.4 spec/models/lab_tech/default_cleaner_spec.rb
lab_tech-0.1.3 spec/models/lab_tech/default_cleaner_spec.rb
lab_tech-0.1.2 spec/models/lab_tech/default_cleaner_spec.rb
lab_tech-0.1.1 spec/models/lab_tech/default_cleaner_spec.rb
lab_tech-0.1.0 spec/models/lab_tech/default_cleaner_spec.rb