Sha256: 07e27460e4720788869cb8fa5a88e34e771adb8bdec069d819178bd21520b517

Contents?: true

Size: 1.6 KB

Versions: 1

Compression:

Stored size: 1.6 KB

Contents

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

module CapistranoNotification
  describe Base do
    describe ".var" do
      def base_subclass_instance(&block)
        klass = Class.new(Base)
        klass.module_eval(&block)
        @subject = klass.new
      end

      describe "w/ symbol only" do
        subject do
          base_subclass_instance do
            var :name
          end
        end

        before { subject.name("foo") }
        its(:name) { should == "foo" }
      end

      describe "w/ default value" do
        subject do
          base_subclass_instance do
            var :name, :default => 'bar'
          end
        end
        its(:name) { should == "bar" }
      end

      describe "w/ required" do
        context "when valid" do
          subject do
            base_subclass_instance do
              var :name, :required => true
            end
          end

          before { subject.name("baz") }
          it { should be_valid }
          its(:name) { should == "baz" }
        end

        context "when invalid" do
          subject do
            base_subclass_instance do
              var :name, :default => "anonymous_base_subclass"
              var :foo, :required => true
            end
          end
          specify do
            subject.should_not be_valid
          end
        end
      end

      describe "pass via block" do
        subject do
          base_subclass_instance do
            var :name
          end
        end
        before { subject.name{ "pass_via_block" } }
        its(:name) { should == "pass_via_block" }
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
capistrano-notification-0.1.1 spec/capistrano-notification_spec.rb