Sha256: d61030fb90a767aa79f14ff1599a07bd4197ba16d60208623dfa2e73e7af9389

Contents?: true

Size: 1.18 KB

Versions: 2

Compression:

Stored size: 1.18 KB

Contents

require "spec_helper"

describe Depot::Base do

  subject { described_class.new }

  before do
    User.stub!(:find_or_create_by_name)
  end

  describe "#initialize" do
    it "should initialize entries hash" do
      subject.entries.should be_empty
      subject.entries.should be_instance_of Hash
    end

    it "should disable logging by default" do
      subject.instance_variable_get(:@logging).should be_false
    end
  end

  describe "#inject" do
    it "should append a new symbol to the models set" do
      subject.inject :jobs
      subject.models.should include :jobs
    end
  end

  describe "#method_missing" do
    before { subject.inject :users }

    it "should listen to model names" do
      lambda {
        subject.users do
          # something
        end
      }.should_not raise_error
    end
    
    it "should listen to entries key name" do
      subject.users do
        create({ name: "Jonh Doe", email: "jonh@doe.com", as: :jonh })
      end
      subject.entries.should have_key :jonh
      lambda { subject.jonh }.should_not raise_error
    end

    it "should fallback to the default behavior" do
      lambda { subject.say_hello }.should raise_error
    end
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
depot-0.2.0 spec/depot/base_spec.rb
depot-0.1.0 spec/depot/base_spec.rb