v3: make create request specs use new sidekiq abstraction, so it does not mess with Sidekiq internals
This commit is contained in:
parent
b7466074ca
commit
b30aa0e8c5
|
@ -33,12 +33,6 @@ module Travis::API::V3
|
|||
|
||||
def perform_async(identifier, *args)
|
||||
Sidekiqs[identifier].perform_async(*args)
|
||||
# class_name, queue = @@sidekiq_cache[identifier] ||= [
|
||||
# "Travis::Sidekiq::#{identifier.to_s.camelcase}".freeze,
|
||||
# identifier.to_s.pluralize.freeze
|
||||
# ]
|
||||
#
|
||||
# ::Sidekiq::Client.push('queue'.freeze => queue, 'class'.freeze => class_name, 'args'.freeze => args)
|
||||
end
|
||||
|
||||
def includes?(key)
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
module Travis::API::V3
|
||||
class Sidekiq
|
||||
def self.client(value = nil)
|
||||
@client = value if value
|
||||
@client ||= defined?(super) ? super : ::Sidekiq::Client.default
|
||||
def self.client
|
||||
@client ||= ::Sidekiq::Client
|
||||
end
|
||||
|
||||
def self.client=(value)
|
||||
@client = value
|
||||
end
|
||||
|
||||
attr_accessor :class_name, :queue, :identifier
|
||||
|
|
|
@ -2,20 +2,16 @@ require 'spec_helper'
|
|||
|
||||
describe Travis::API::V3::Services::Requests::Create do
|
||||
let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first }
|
||||
let(:sidekiq_payload) { JSON.load(Sidekiq::Client.last['args'].last[:payload]).deep_symbolize_keys }
|
||||
let(:sidekiq_requests) { [] }
|
||||
before { repo.requests.each(&:delete) }
|
||||
|
||||
before do
|
||||
Travis::Features.stubs(:owner_active?).returns(true)
|
||||
@original_sidekiq = Sidekiq::Client
|
||||
Sidekiq.send(:remove_const, :Client) # to avoid a warning
|
||||
Sidekiq::Client = []
|
||||
let(:sidekiq_payload) do
|
||||
expect(sidekiq_requests).not_to be_empty, 'expected at least one sidekiq request to be sent, none sent'
|
||||
JSON.load(sidekiq_requests.last['args'].last[:payload]).deep_symbolize_keys
|
||||
end
|
||||
|
||||
after do
|
||||
Sidekiq.send(:remove_const, :Client) # to avoid a warning
|
||||
Sidekiq::Client = @original_sidekiq
|
||||
end
|
||||
before { Travis::API::V3::Sidekiq.client = sidekiq_requests }
|
||||
after { Travis::API::V3::Sidekiq.client = nil }
|
||||
|
||||
describe "not authenticated" do
|
||||
before { post("/v3/repo/#{repo.id}/requests") }
|
||||
|
@ -104,8 +100,8 @@ describe Travis::API::V3::Services::Requests::Create do
|
|||
config: {}
|
||||
}}
|
||||
|
||||
example { expect(Sidekiq::Client.last['queue']).to be == 'build_requests' }
|
||||
example { expect(Sidekiq::Client.last['class']).to be == 'Travis::Sidekiq::BuildRequest' }
|
||||
example { expect(sidekiq_requests.last['queue']).to be == 'build_requests' }
|
||||
example { expect(sidekiq_requests.last['class']).to be == 'Travis::Sidekiq::BuildRequest' }
|
||||
|
||||
describe "setting id has no effect" do
|
||||
let(:params) {{ id: 42 }}
|
||||
|
|
Loading…
Reference in New Issue
Block a user