Skip to content

Commit 0506be3

Browse files
committed
fix: ensure datetime tests run correctly regardless of timezone
1 parent a423111 commit 0506be3

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

spec/fixtures/dashboard.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
"verifiedAt": "2018-01-01T00:00:00+00:00"
3434
},
3535
"latestWebhookExecution": {
36-
"triggeredAt": "2017-12-31T13:00:00+00:00"
36+
"triggeredAt": "2018-01-01T00:00:00+00:00"
3737
},
3838
"pactTags": [
3939
{

spec/lib/pact_broker/api/decorators/dashboard_decorator_spec.rb

+15-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
require 'pact_broker/api/decorators/dashboard_decorator'
22
require 'pact_broker/domain/index_item'
33

4+
ORIGINAL_TZ = ENV['TZ']
5+
46
module PactBroker
57
module Api
68
module Decorators
@@ -26,14 +28,24 @@ module Decorators
2628
end
2729
let(:consumer) { instance_double('PactBroker::Domain::Pacticipant', name: 'Foo') }
2830
let(:provider) { instance_double('PactBroker::Domain::Pacticipant', name: 'Bar') }
29-
let(:pact) { instance_double('PactBroker::Domain::Pact', created_at: DateTime.new(2018)) }
30-
let(:verification) { instance_double('PactBroker::Domain::Verification', success: true, created_at: DateTime.new(2018)) }
31+
let(:pact) { instance_double('PactBroker::Domain::Pact', created_at: created_at) }
32+
let(:verification) { instance_double('PactBroker::Domain::Verification', success: true, created_at: created_at) }
3133
let(:consumer_version) { instance_double('PactBroker::Domain::Version', number: '1', pacticipant: consumer) }
3234
let(:provider_version) { instance_double('PactBroker::Domain::Version', number: '2', pacticipant: provider) }
33-
let(:last_webhook_execution_date) { Date.new(2018) }
35+
let(:last_webhook_execution_date) { created_at }
3436
let(:base_url) { 'http://example.org' }
3537
let(:options) { { user_options: { base_url: base_url } } }
3638
let(:dashboard_json) { DashboardDecorator.new([index_item]).to_json(options) }
39+
let(:created_at) { in_utc { DateTime.new(2018) } }
40+
41+
def in_utc
42+
begin
43+
ENV['TZ'] = 'UTC'
44+
yield
45+
ensure
46+
ENV['TZ'] = ORIGINAL_TZ
47+
end
48+
end
3749

3850
before do
3951
allow_any_instance_of(DashboardDecorator).to receive(:pact_url).with(base_url, pact).and_return('pact_url')

0 commit comments

Comments
 (0)