Chatwoot/spec/models/concerns/out_of_offisable_shared.rb

25 lines
872 B
Ruby

require 'rails_helper'
shared_examples_for 'out_of_offisable' do
let(:obj) { create(described_class.to_s.underscore, working_hours_enabled: true, out_of_office_message: 'Message') }
it 'has after create callback' do
expect(obj.working_hours.count).to eq(7)
end
it 'is working on monday 10am' do
travel_to '26.10.2020 10:00'.to_datetime
expect(obj.working_now?).to be true
end
it 'is out of office on sunday 1pm' do
travel_to '01.11.2020 13:00'.to_datetime
expect(obj.out_of_office?).to be true
end
it 'updates the office hours via a hash' do
obj.update_working_hours([{ 'day_of_week' => 1, 'open_hour' => 10, 'open_minutes' => 0,
'close_hour' => 17, 'close_minutes' => 0 }])
expect(obj.reload.weekly_schedule.find { |schedule| schedule['day_of_week'] == 1 }['open_hour']).to eq 10
end
end