@@ -106,9 +106,11 @@ public function it_assembles_properties_for_a_new_page()
106
106
$ checkboxKey = 'CheckboxProperty ' ;
107
107
$ checkboxValue = true ;
108
108
$ dateRangeKey = 'DateRangeProperty ' ;
109
+ $ dateTimeRangeKey = 'DateTimeRangeProperty ' ;
109
110
$ dateRangeStartValue = Carbon::now ()->toDateTime ();
110
111
$ dateRangeEndValue = Carbon::tomorrow ()->toDateTime ();
111
112
$ dateKey = 'DateProperty ' ;
113
+ $ dateTimeKey = 'DateTimeProperty ' ;
112
114
$ dateValue = Carbon::yesterday ()->toDateTime ();
113
115
$ emailKey = 'EmailProperty ' ;
114
116
$ emailValue = 'notion-is-awesome@example.org ' ;
@@ -135,7 +137,9 @@ public function it_assembles_properties_for_a_new_page()
135
137
$ page ->setTitle ('Name ' , $ pageTitle );
136
138
$ page ->setCheckbox ($ checkboxKey , $ checkboxValue );
137
139
$ page ->setDate ($ dateRangeKey , $ dateRangeStartValue , $ dateRangeEndValue );
140
+ $ page ->setDateTime ($ dateTimeRangeKey , $ dateRangeStartValue , $ dateRangeEndValue );
138
141
$ page ->setDate ($ dateKey , $ dateValue );
142
+ $ page ->setDateTime ($ dateTimeKey , $ dateValue );
139
143
$ page ->setEmail ($ emailKey , $ emailValue );
140
144
$ page ->setMultiSelect ($ multiSelectKey , $ multiSelectValues );
141
145
$ page ->setNumber ($ numberKey , $ numberValue );
@@ -186,6 +190,28 @@ public function it_assembles_properties_for_a_new_page()
186
190
$ this ->assertArrayHasKey ('end ' , $ dateRangeContent ['date ' ]);
187
191
$ this ->assertEquals ($ dateRangeEndValue ->format ('Y-m-d ' ), $ dateRangeContent ['date ' ]['end ' ]);
188
192
193
+
194
+ // date range (with time)
195
+ $ this ->assertTrue (
196
+ $ this ->assertContainsInstanceOf (Date::class, $ properties )
197
+ );
198
+ $ dateTimeRangeProp = $ page ->getProperty ($ dateTimeRangeKey );
199
+ $ this ->assertInstanceOf (RichDate::class, $ dateTimeRangeProp ->getContent ());
200
+ $ dateTimeRangeContent = $ dateTimeRangeProp ->getContent ();
201
+ $ this ->assertTrue ($ dateTimeRangeProp ->isRange ());
202
+ $ this ->assertEquals ($ dateRangeStartValue , $ dateTimeRangeProp ->getStart ());
203
+ $ this ->assertEquals ($ dateRangeEndValue , $ dateTimeRangeProp ->getEnd ());
204
+ $ this ->assertJson ($ dateTimeRangeProp ->asText ());
205
+ $ this ->assertStringContainsString ($ dateRangeStartValue ->format ('Y-m-d H:i:s ' ), $ dateTimeRangeProp ->asText ());
206
+ $ this ->assertStringContainsString ($ dateRangeEndValue ->format ('Y-m-d H:i:s ' ), $ dateTimeRangeProp ->asText ());
207
+ $ dateTimeRangeContent = $ dateTimeRangeProp ->getRawContent ();
208
+ $ this ->assertArrayHasKey ('date ' , $ dateTimeRangeContent );
209
+ $ this ->assertCount (2 , $ dateTimeRangeContent ['date ' ]);
210
+ $ this ->assertArrayHasKey ('start ' , $ dateTimeRangeContent ['date ' ]);
211
+ $ this ->assertEquals ($ dateRangeStartValue ->format ('c ' ), $ dateTimeRangeContent ['date ' ]['start ' ]);
212
+ $ this ->assertArrayHasKey ('end ' , $ dateTimeRangeContent ['date ' ]);
213
+ $ this ->assertEquals ($ dateRangeEndValue ->format ('c ' ), $ dateTimeRangeContent ['date ' ]['end ' ]);
214
+
189
215
// date
190
216
$ dateProp = $ page ->getProperty ($ dateKey );
191
217
$ this ->assertInstanceOf (RichDate::class, $ dateProp ->getContent ());
@@ -197,6 +223,17 @@ public function it_assembles_properties_for_a_new_page()
197
223
$ this ->assertArrayHasKey ('start ' , $ dateContent ['date ' ]);
198
224
$ this ->assertEquals ($ dateValue ->format ('Y-m-d ' ), $ dateContent ['date ' ]['start ' ]);
199
225
226
+ // date (with time)
227
+ $ dateTimeProp = $ page ->getProperty ($ dateTimeKey );
228
+ $ this ->assertInstanceOf (RichDate::class, $ dateTimeProp ->getContent ());
229
+ $ this ->assertFalse ($ dateTimeProp ->isRange ());
230
+ $ this ->assertEquals ($ dateValue , $ dateTimeProp ->getStart ());
231
+ $ dateTimeContent = $ dateTimeProp ->getRawContent ();
232
+ $ this ->assertArrayHasKey ('date ' , $ dateTimeContent );
233
+ $ this ->assertCount (1 , $ dateTimeContent ['date ' ]);
234
+ $ this ->assertArrayHasKey ('start ' , $ dateTimeContent ['date ' ]);
235
+ $ this ->assertEquals ($ dateValue ->format ('c ' ), $ dateTimeContent ['date ' ]['start ' ]);
236
+
200
237
// email
201
238
$ this ->assertTrue ($ this ->assertContainsInstanceOf (Email::class, $ properties ));
202
239
$ mailProp = $ page ->getProperty ($ emailKey );
0 commit comments