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