spec/trello_connection_spec.rb in reviewlette-0.0.6 vs spec/trello_connection_spec.rb in reviewlette-0.0.7
- old
+ new
@@ -1,202 +1,67 @@
require 'spec_helper'
-describe Reviewlette::TrelloConnection do
+describe TrelloConnection do
- subject { Reviewlette::TrelloConnection }
+ TRELLO_CONFIG = { :consumerkey => '4a6', :consumersecret => '899', :oauthtoken => 'a8e', :board_id => 'T5S' }
+ subject { TrelloConnection }
+ let (:trello) { subject.new }
+ let (:card) { Trello::Card.new }
- describe '.new' do
+ before {
+ allow(Trello::Board).to receive(:find).and_return(Trello::Board.new)
+ }
- it 'populates board variable with instance of Trello::Board' do
- stub_boards_call
- expect(subject.new.board).to be_kind_of Trello::Board
- end
-
+ describe '.new' do
it 'sets up trello' do
- allow(Trello::Board).to receive(:find).and_return nil
- config = Reviewlette::TRELLO_CONFIG1
- expect_any_instance_of(Trello::Configuration).to receive(:developer_public_key=).with(config['consumerkey']).and_call_original
+ expect_any_instance_of(Trello::Configuration).to receive(:developer_public_key=).with(TRELLO_CONFIG['consumerkey'])
+ expect_any_instance_of(Trello::Configuration).to receive(:member_token=).with(TRELLO_CONFIG['oauthtoken'])
subject.new
end
-
- it 'sets up trello' do
- allow(Trello::Board).to receive(:find).and_return nil
- config = Reviewlette::TRELLO_CONFIG1
- expect_any_instance_of(Trello::Configuration).to receive(:member_token=).with(config['oauthtoken']).and_call_original
- subject.new
- end
-
end
-
- describe '#find_member_by_id(id)' do
- let( :trello_connection ) { subject.new }
-
- before do
- allow_any_instance_of(subject).to receive(:setup_trello).and_return true
- allow(subject).to receive(:find_card_by_id).and_return :id
- end
-
- it "finds the right card based on the trello id" do
- board = double('board')
- trello_connection.board = board
- expect(board).to receive_message_chain(:cards, :find)
- trello_connection.send(:find_card_by_id, 42)
- #privates with send
- end
- end
-
- describe '#find_member_by_username' do
- let( :trello_connection ) { subject.new }
-
- before do
- allow_any_instance_of(subject).to receive(:setup_trello).and_return true
- allow(subject).to receive(:find_member_by_username).and_return :username
- end
-
- it "finds a member based on a username and returns a trello member object" do
- board = double('board')
- trello_connection.board = board
- expect(board).to receive_message_chain(:members, :find)
- trello_connection.send(:find_member_by_username, 'art')
- end
- end
-
- describe '#find_member_by_id' do
- let( :trello_connection ) { subject.new }
-
- before do
- allow_any_instance_of(subject).to receive(:setup_trello).and_return true
- allow(subject).to receive(:find_member_by_id).and_return :id
- end
-
- it "finds the right member based on the trello id and returns a trello member object" do
- board = double('board')
- trello_connection.board = board
- expect(board).to receive_message_chain(:members, :find)
- trello_connection.send(:find_member_by_id, 42)
- end
- end
-
describe '#add_reviewer_to_card' do
- let ( :trello_connection ) { subject.new }
-
- before do
- allow_any_instance_of(subject).to receive(:setup_trello).and_return true
- end
-
it "adds the valid member to the trello card and comments it" do
- card = double('card')
- allow(card).to receive(:add_member).and_return true
- expect(trello_connection.add_reviewer_to_card('asd', card)).to eq true
+ expect(trello).to receive(:find_member_by_username).with('testuser1').and_return 'testuser1'
+ expect_any_instance_of(Trello::Card).to receive(:add_member).with('testuser1')
+ trello.add_reviewer_to_card('testuser1', card)
end
end
describe '#comment_on_card' do
- let ( :trello_connection ) { subject.new }
-
- before do
- allow_any_instance_of(subject).to receive(:setup_trello).and_return true
- end
-
it "comments on the assigned trello card " do
- card = double('card')
- allow(card).to receive(:add_comment).with('username').and_return true
- expect(trello_connection.comment_on_card('username', card)).to eq true
+ allow(card).to receive(:add_comment).with('comment').and_return true
+ expect(trello.comment_on_card('comment', card)).to eq true
end
end
- describe '#team' do
- let ( :trello_connection ) { subject.new }
-
- before do
- allow_any_instance_of(subject).to receive(:setup_trello).and_return true
- end
-
- it "builds the team member list" do
- expect(trello_connection.team).to be_a_kind_of Array
- end
- end
-
describe '#move_card_to_list' do
- let( :trello_connection ) { subject.new }
-
- before do
- allow_any_instance_of(subject).to receive(:setup_trello).and_return true
- end
-
it 'move cards to its certain column' do
- card = double('card')
- allow(card).to receive(:move_to_list).with('Done').and_return true
- expect(trello_connection.move_card_to_list(card, 'Done')).to be true
+ expect(trello).to receive(:find_column).with('Done').and_return 'column'
+ expect(card).to receive(:move_to_list).with('column').and_return true
+ expect(trello.move_card_to_list(card, 'Done')).to be true
end
-
- it 'fails to move cards to its certain column' do
- card = double('card')
- allow(card).to receive(:move_to_list).with('Done').and_return false
- expect(trello_connection.move_card_to_list(card, 'Done')).to be false
- end
end
describe '#find_column' do
- let( :trello_connection ) { subject.new }
-
- before do
- allow_any_instance_of(subject).to receive(:setup_trello).and_return true
- end
-
it 'detects columns' do
- board = double('board')
- trello_connection.board = board
- expect(board).to receive_message_chain(:lists, :find)
- trello_connection.send(:find_column, 'Done')
+ expect_any_instance_of(Trello::Board).to receive_message_chain(:lists, :find)
+ trello.find_column('Done')
end
end
- describe '#sample_reviewer' do
- let ( :trello_connection ) { subject.new }
-
- before do
- allow_any_instance_of(subject).to receive(:setup_trello).and_return true
+ describe '#find_member_by_username' do
+ it "finds a member based on a username and returns a trello member object" do
+ expect_any_instance_of(Trello::Board).to receive_message_chain(:members, :find)
+ trello.find_member_by_username('testuser')
end
- it 'randomly selects a teammember' do
- card = double('card')
- expect(card).to receive_message_chain(:assignees, :map).and_return ['funny','names']
- trello_connection.sample_reviewer(card)
- end
end
- describe '#reviewer_exception_handler' do
- let ( :trello_connection ) { subject.new }
-
- before do
- allow_any_instance_of(subject).to receive(:setup_trello).and_return true
+ describe '#find_card_by_id(id)' do
+ it "finds the right card based on the trello id" do
+ expect_any_instance_of(Trello::Board).to receive_message_chain(:cards, :find)
+ trello.find_card_by_id(123)
end
- it 'checks sum of for card assignees' do
- card = double('card')
- expect(card).to receive_message_chain(:assignees, :map).and_return [1,2,3]
- trello_connection.reviewer_exception_handler(card)
- end
end
- describe '#determine_reviewer' do
- let ( :trello_connection ) { subject.new }
- before do
- allow_any_instance_of(subject).to receive(:setup_trello).and_return true
- end
-
- it 'fails to holds an array of the available reveiewers' do
- card = double('card')
- expect(trello_connection).to receive(:reviewer_exception_handler).with(card).and_return true
- expect{trello_connection.determine_reviewer(card)}.to raise_error(Exception, 'Everyone on the team is assigned to the Card.')
- end
-
- it 'holds an array of the available reveiewers' do
- card = double('card')
- expect(trello_connection).to receive(:reviewer_exception_handler).with(card).and_return false
- expect(trello_connection).to receive(:sample_reviewer).and_return true
- expect(trello_connection).to receive(:find_member_by_username).and_return 'name'
- expect(trello_connection.determine_reviewer(card)).to eq 'name'
- end
- end
end