Sha256: c16c0bddcec4603a538eaa1baa7ae4e0bd40c79925d8cfba12dcd0d9eede7890

Contents?: true

Size: 1.04 KB

Versions: 3

Compression:

Stored size: 1.04 KB

Contents

require 'spec_helper'

class NiceController
  def flash
    @flash ||= Hash.new
  end
end

class SignOffCommand < Controll::Command
  attribute :parent_id, String

  def perform
    {id: params[:id], parent: parent_id, user_id: session[:user_id] }
  end
end

class NiceCommander < Controll::Commander
  command_method(:sign_off, name: 'kris') { {parent_id: parent_id} }

  def params
    {:id => 7}
  end

  def session
    {:user_id => 1}
  end

  def parent_id
    'my parent'
  end
end

describe Controll::Command do

  context 'Commander instance' do
    subject { commander_clazz.new controller, options }
    let(:commander_clazz) { NiceCommander }

    let(:controller) { NiceController.new }
    let(:options) do
      {name: 'nice' }
    end

    describe '.command name, *args' do 
      specify do
        subject.command(:sign_off).should be_a Controll::Command
      end
    end

    describe '.command! name, *args' do
      specify do
        subject.command!(:sign_off).should == {id: 7, parent: 'my parent', user_id: 1 }
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
controll-0.3.2 spec/controll/command_spec.rb
controll-0.3.1 spec/controll/command_spec.rb
controll-0.3.0 spec/controll/command_spec.rb