Sha256: 03da615ab326d119849b0fb1119958b828d78ad98d1fff7e4a537c373923c0df

Contents?: true

Size: 1.4 KB

Versions: 17

Compression:

Stored size: 1.4 KB

Contents

require 'spec_helper'

class Test
  include CouchPotato::Persistence

  property :test, :default => 'Test value'
  property :complex, :default => [1, 2, 3]
  property :false_value, :default => false
  property :proc, :default => Proc.new { 1 + 2 }
  property :proc_arity_one, :default => Proc.new {|test| test.test * 2 }
end

describe 'default properties' do
  before(:all) do
    recreate_db
  end

  it "uses the default value if nothing is supplied" do
    t = Test.new

    expect(t.test).to eq('Test value')
  end

  it "persists the default value if nothing is supplied" do
    t = Test.new
    CouchPotato.database.save_document! t

    t = CouchPotato.database.load_document t.id
    expect(t.test).to eq('Test value')
  end

  it "does not have the same default for two instances of the object" do
    t = Test.new
    t2 = Test.new
    expect(t.complex.object_id).not_to eq(t2.complex.object_id)
  end

  it "does not return the default value when the actual value is empty" do
    t = expect(Test.new(:complex => []).complex).to eq([])
  end

  it "uses the default value also if the default is false" do
    t = Test.new
    expect(t.false_value).to eq(false)
  end

  it "uses the return value of a Proc given as the default" do
    t = Test.new
    expect(t.proc).to eq(3)
  end

  it 'passes the model to a block with arity 1' do
    t = Test.new

    expect(t.proc_arity_one).to eql('Test valueTest value')
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
couch_potato-1.18.0 spec/default_property_spec.rb
couch_potato-1.17.0 spec/default_property_spec.rb
couch_potato-1.16.0 spec/default_property_spec.rb
couch_potato-1.15.0 spec/default_property_spec.rb
couch_potato-1.14.0 spec/default_property_spec.rb
couch_potato-1.13.0 spec/default_property_spec.rb
couch_potato-1.12.1 spec/default_property_spec.rb
couch_potato-1.12.0 spec/default_property_spec.rb
couch_potato-1.11.0 spec/default_property_spec.rb
couch_potato-1.10.1 spec/default_property_spec.rb
couch_potato-1.10.0 spec/default_property_spec.rb
couch_potato-1.9.0 spec/default_property_spec.rb
couch_potato-1.7.1 spec/default_property_spec.rb
couch_potato-1.7.0 spec/default_property_spec.rb
couch_potato-1.6.5 spec/default_property_spec.rb
couch_potato-1.6.4 spec/default_property_spec.rb
couch_potato-1.6.3 spec/default_property_spec.rb