metric_update_spec.rb 1013 B

1234567891011121314151617181920212223242526272829303132
  1. require 'spec_helper'
  2. require 'sidekiq/testing'
  3. require './lib/sidekiq/cloudwatch/metric_update'
  4. describe Sidekiq::Cloudwatch::MetricUpdate do
  5. describe "#run!" do
  6. let(:request) { WebMock.requests }
  7. before do
  8. VCR.use_cassette(:aws_cloudwatch_put_metric_data) do
  9. subject.run!
  10. end
  11. end
  12. it { expect(WebMock.requests.size).to eq(Sidekiq::Cloudwatch::Metric::Base.descendants.count) }
  13. end
  14. describe "#schedule!" do
  15. let(:scheduled_jobs) { ::Sidekiq::Cloudwatch::MetricUpdateWorker.jobs }
  16. let(:scheduled_job) { scheduled_jobs.last }
  17. before do
  18. Sidekiq::Testing.fake!
  19. Sidekiq::Worker.clear_all
  20. subject.schedule!
  21. end
  22. it { expect(scheduled_jobs.size).to eq(described_class::DEFAULT_METRIC_UPDATE_SCHEDULER_FREQUENCY_SECONDS / described_class::DEFAULT_METRIC_UPDATE_FREQUENCY_SECONDS) }
  23. it { expect(scheduled_job["at"]).not_to eq(nil) }
  24. it { expect(scheduled_job["class"]).to eq("Sidekiq::Cloudwatch::MetricUpdateWorker") }
  25. end
  26. end