trabajo-afectivo/spec/lib/import/otrs/requester_spec.rb
2022-01-01 14:38:12 +01:00

56 lines
1.6 KiB
Ruby

# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
require 'rails_helper'
RSpec.describe Import::OTRS::Requester do
describe '.list' do
it 'responds to list' do
expect(described_class).to respond_to(:list)
end
end
describe '.load' do
it 'responds to load' do
expect(described_class).to respond_to(:load)
end
context 'caching request results' do
let(:response) do
response = double
response_body = double
allow(response_body).to receive(:to_s).at_least(:once).and_return('{"Result": {}}')
allow(response).to receive('success?').at_least(:once).and_return(true)
allow(response).to receive('body').at_least(:once).and_return(response_body)
response
end
it 'is active if no args are given' do
allow(UserAgent).to receive(:post).and_return(response)
described_class.load('Ticket')
described_class.load('Ticket')
end
it 'is not active if args are given' do
allow(UserAgent).to receive(:post).twice.and_return(response)
described_class.load('Ticket', offset: 10)
described_class.load('Ticket', offset: 20)
end
end
end
describe '.connection_test' do
it 'responds to connection_test' do
expect(described_class).to respond_to(:connection_test)
end
end
it 'retries request 3 times on errors' do
expect(UserAgent).to receive(:post).and_raise(Errno::ECONNRESET).exactly(3).times
# disable sleep time to speed up tests
described_class.retry_sleep = 0
expect { described_class.list }.to raise_error(Errno::ECONNRESET)
end
end