Sha256: 62de9c2a1e66b302c48ea465766923fb47036dd77dadcd6930da6f9bbd935e34

Contents?: true

Size: 1.44 KB

Versions: 1

Compression:

Stored size: 1.44 KB

Contents

require 'spec_helper'

describe Vacations do
  subject { Vacations }

  let(:members_config) { { members: [member1, member2, member3] } }
  let(:member1) { { 'suse_username' => 'testuser1' } }
  let(:member2) { { 'suse_username' => 'testuser2' } }
  let(:member3) { { 'suse_username' => 'testuser3' } }
  let(:timestamp) { 'Absence    : Thu 2015-04-02 - Tue 2015-04-07' }

  describe '.find_vacations' do
    it 'parses the vacations dates out of tel' do
      stub_telnet = double
      expect(stub_telnet).to receive(:cmd).with('testuser1').and_return(timestamp)
      expect(stub_telnet).to receive(:close).and_return(true)

      expect(Net::Telnet).to receive(:new).and_return(stub_telnet)
      vacations = subject.find_vacations('testuser1')

      expect(vacations).to be_kind_of(Array)
      expect(vacations).to eq([Date.parse('2015-04-02')..Date.parse('2015-04-07')])
    end
  end

  describe '.members_on_vacation' do
    it 'finds members on vacation' do
      allow(subject).to receive(:find_vacations).with('testuser1').and_return [(Date.today - 1)..(Date.today + 2)]
      allow(subject).to receive(:find_vacations).with('testuser2').and_return [(Date.today - 1)..(Date.today - 1)]
      allow(subject).to receive(:find_vacations).with('testuser3').and_return []

      expect(subject.members_on_vacation(members_config[:members])).to be_kind_of(Array)
      expect(subject.members_on_vacation(members_config[:members])).to eq(['testuser1'])
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
reviewlette-0.0.9 spec/vacation_spec.rb