Sha256: b00a96d8ecbd55b8fa77574aeda49b285c5f907d6a56cedfbcd2b28cbc128dde

Contents?: true

Size: 1.22 KB

Versions: 2

Compression:

Stored size: 1.22 KB

Contents

require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')

describe DattsRight, ".add_dynamic_attribute(attr_key, object_type)" do
  before do
    reset_database
    @page = Page.create
  end

  it "should be aliased by add_datt" do
    Page.instance_method(:add_dynamic_attribute).should == Page.instance_method(:add_datt)
  end

  it "should add a dynamic attribute" do
    @page.add_dynamic_attribute(:rocks, "string")
    @page.dynamic_attribute_details(:rocks).value.should be_nil
    @page.add_dynamic_attribute(:rock, "string", "123")
    @page.read_datt(:rock).should == "123"
    @page.dynamic_attribute_details(:rock).value.should == "123"
  end

  it "should ignore when trying to add same attribute" do
    @page.add_dynamic_attribute(:rocks, "string")
    @page.add_dynamic_attribute(:rocks, "integer")
    @page.dynamic_attribute_details(:rocks).object_type.should == "string"
  end

  it "should return false if the method that is being added already exists" do
    @page.add_dynamic_attribute(:name, "text").should be_false
  end

  it "should not make any changes to the original attribute" do
    @page.update_attribute(:name, "juno")
    @page.add_dynamic_attribute(:name, "text")
    @page.name.should == "juno"
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
datts_right-0.0.14 spec/datts_right/add_dynamic_attributes_spec.rb
datts_right-0.0.13 spec/datts_right/add_dynamic_attributes_spec.rb