Sha256: ad980fb04a87544b0370a01eb3b812032a5ddc8381662b5d63843e4fb0baf30f

Contents?: true

Size: 1.68 KB

Versions: 6

Compression:

Stored size: 1.68 KB

Contents

require File.join File.dirname(__FILE__), '..', 'spec_helper'

describe ActsAsDashboard::Config do
  describe 'initialization' do # {{{
    it 'creates an array of widgets' do
      config = ActsAsDashboard::Config.new
      config.instance_variable_get(:@widgets).should == []
    end
  end # }}}

  describe 'attributes' do # {{{
    it 'returns the "widgets" attribute' do
      config = ActsAsDashboard::Config.new
      config.widgets.should equal config.instance_variable_get(:@widgets)
    end
  end # }}}

  describe 'adding a widget' do # {{{
    before :each do
      @config = ActsAsDashboard::Config.new
    end

    it 'raises an exception if given an invalid value' do
      Proc.new {@config.add_widget nil}.should raise_error ArgumentError,
        'The "widget" argument must be an ActsAsDashboard::Widget.'
    end

    it 'is successful when given an ActsAsDashboard::Widget' do
      widget = ActsAsDashboard::Widget.new

      @config.widgets.should == []
      @config.add_widget widget
      @config.widgets.should == [widget]
    end
  end # }}}

  describe 'finding a widget' do # {{{
    before :each do
      @config = ActsAsDashboard::Config.new
    end

    it 'raises an exception if given an invalid value' do
      Proc.new {@config.find_widget nil}.should raise_error ArgumentError,
        'The "name" argument must respond to #to_sym .'
    end

    it 'returns the widget with the given name' do
      foo_widget = ActsAsDashboard::Widget.new :name => :foo
      bar_widget = ActsAsDashboard::Widget.new :name => :bar

      @config.add_widget foo_widget
      @config.add_widget bar_widget

      @config.find_widget(foo_widget.name).should equal foo_widget
    end
  end # }}}
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
acts_as_dashboard-0.4.1 spec/acts_as_dashboard/config_spec.rb
acts_as_dashboard-0.4.0 spec/acts_as_dashboard/config_spec.rb
acts_as_dashboard-0.3.3 spec/acts_as_dashboard/config_spec.rb
acts_as_dashboard-0.3.2 spec/acts_as_dashboard/config_spec.rb
acts_as_dashboard-0.3.0 spec/acts_as_dashboard/config_spec.rb
acts_as_dashboard-0.1.0 spec/acts_as_dashboard/config_spec.rb