Sha256: d03859f66f40529cb256f72b8b5b759f4deb4610ed1107471015c0d4a5ab5f1f

Contents?: true

Size: 1.32 KB

Versions: 3

Compression:

Stored size: 1.32 KB

Contents

require_relative "../../../test_helper"

module Troo
  describe CreateBoard do
    let(:described_class) { CreateBoard }
    let(:board_name)      { "My New Board" }
    let(:description)     { "A very brief description..." }

    before do
      @board = Fabricate(:board, name: board_name, description: description)
      Troo::BoardPersistence.stubs(:for).returns(@board)
    end

    after { database_cleanup }

    describe ".initialize" do
      subject { described_class.new(board_name, description) }

      it "assigns the name to an instance variable" do
        subject.instance_variable_get("@name").must_equal(board_name)
      end

      it "assigns the description to an instance variable" do
        subject.instance_variable_get("@description").must_equal(description)
      end
    end

    describe ".with" do
      before { VCR.insert_cassette(:create_board, decode_compressed_response: true) }
      after  { VCR.eject_cassette }

      subject { described_class.with(board_name, description) }

      context "when the board was created" do
        it "returns the new board" do
          subject.must_equal(@board)
        end
      end

      context "when the board was not created" do
        before { Trello::Board.stubs(:create).raises(Trello::Error) }

        it { subject.must_equal false }
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
troo-0.0.4 test/lib/troo/actions/create_board_test.rb
troo-0.0.3 test/lib/troo/actions/create_board_test.rb
troo-0.0.2 test/lib/troo/actions/create_board_test.rb