@@ -27,7 +27,7 @@ module VCAP::CloudController
2727 target_guids : [ 'guid1' , 'guid2' ] ,
2828 space_guids : [ 'guid3' , 'guid4' ] ,
2929 organization_guids : [ 'guid5' , 'guid6' ] ,
30- created_at : { lt : Time . now . iso8601 } ,
30+ created_at : { lt : Time . now . utc . iso8601 } ,
3131 } )
3232 expect ( message ) . to be_valid
3333 end
@@ -66,52 +66,58 @@ module VCAP::CloudController
6666
6767 context 'validates the created_at filter' do
6868 it 'requires a hash or a timestamp' do
69- message = EventsListMessage . from_params ( { created_at : [ Time . now . iso8601 ] } )
69+ message = EventsListMessage . from_params ( { created_at : [ Time . now . utc . iso8601 ] } )
7070 expect ( message ) . not_to be_valid
7171 expect ( message . errors [ :created_at ] ) . to include ( 'comparison operator and timestamp must be specified' )
7272 end
7373
7474 it 'requires a valid comparison operator' do
75- message = EventsListMessage . from_params ( { created_at : { garbage : Time . now . iso8601 } } )
75+ message = EventsListMessage . from_params ( { created_at : { garbage : Time . now . utc . iso8601 } } )
7676 expect ( message ) . not_to be_valid
7777 expect ( message . errors [ :created_at ] ) . to include ( "Invalid comparison operator: 'garbage'" )
7878 end
7979
80- it 'requires a valid comparison operator' do
81- message = EventsListMessage . from_params ( { created_at : { garbage : Time . now . iso8601 } } )
82- expect ( message ) . not_to be_valid
83- expect ( message . errors [ :created_at ] ) . to include ( "Invalid comparison operator: 'garbage'" )
84- end
85-
86- it 'requires a valid timestamp' do
87- message = EventsListMessage . from_params ( { created_at : { gt : 123 } } )
88- expect ( message ) . not_to be_valid
89- expect ( message . errors [ :created_at ] ) . to include ( "Invalid timestamp format: '123'" )
80+ context 'requires a valid timestamp' do
81+ it "won't accept garbage" do
82+ message = EventsListMessage . from_params ( { created_at : { gt : 123 } } )
83+ expect ( message ) . not_to be_valid
84+ expect ( message . errors [ :created_at ] ) . to include ( "has an invalid timestamp format. Timestamps should be formatted as 'YYYY-MM-DDThh:mm:ssZ'" )
85+ end
86+ it "won't accept fractional seconds even though it's ISO 8601-compliant" do
87+ message = EventsListMessage . from_params ( { created_at : { gt : '2020-06-30T12:34:56.78Z' } } )
88+ expect ( message ) . not_to be_valid
89+ expect ( message . errors [ :created_at ] ) . to include ( "has an invalid timestamp format. Timestamps should be formatted as 'YYYY-MM-DDThh:mm:ssZ'" )
90+ end
91+ it "won't accept local time zones even though it's ISO 8601-compliant" do
92+ message = EventsListMessage . from_params ( { created_at : { gt : '2020-06-30T12:34:56.78-0700' } } )
93+ expect ( message ) . not_to be_valid
94+ expect ( message . errors [ :created_at ] ) . to include ( "has an invalid timestamp format. Timestamps should be formatted as 'YYYY-MM-DDThh:mm:ssZ'" )
95+ end
9096 end
9197
9298 it 'allows the lt operator' do
93- message = EventsListMessage . from_params ( { created_at : { lt : Time . now . iso8601 } } )
99+ message = EventsListMessage . from_params ( { created_at : { lt : Time . now . utc . iso8601 } } )
94100 expect ( message ) . to be_valid
95101 end
96102
97103 it 'allows the lte operator' do
98- message = EventsListMessage . from_params ( { created_at : { lte : Time . now . iso8601 } } )
104+ message = EventsListMessage . from_params ( { created_at : { lte : Time . now . utc . iso8601 } } )
99105 expect ( message ) . to be_valid
100106 end
101107
102108 it 'allows the gt operator' do
103- message = EventsListMessage . from_params ( { created_at : { gt : Time . now . iso8601 } } )
109+ message = EventsListMessage . from_params ( { created_at : { gt : Time . now . utc . iso8601 } } )
104110 expect ( message ) . to be_valid
105111 end
106112
107113 it 'allows the gte operator' do
108- message = EventsListMessage . from_params ( { created_at : { gte : Time . now . iso8601 } } )
114+ message = EventsListMessage . from_params ( { created_at : { gte : Time . now . utc . iso8601 } } )
109115 expect ( message ) . to be_valid
110116 end
111117
112118 context 'when the operator is an equals operator' do
113119 it 'allows the equals operator' do
114- message = EventsListMessage . from_params ( { created_at : Time . now . iso8601 } )
120+ message = EventsListMessage . from_params ( { created_at : Time . now . utc . iso8601 } )
115121 expect ( message ) . to be_valid
116122 end
117123
0 commit comments