@@ -69,9 +69,13 @@ public function it_returns_page_entity_with_filled_properties()
69
69
// check properties
70
70
$ this ->assertSame ('Notion Is Awesome ' , $ pageResult ->getTitle ());
71
71
$ this ->assertSame ('page ' , $ pageResult ->getObjectType ());
72
- $ this ->assertCount (7 , $ pageResult ->getRawProperties ());
73
- $ this ->assertCount (7 , $ pageResult ->getProperties ());
74
- $ this ->assertCount (7 , $ pageResult ->getPropertyKeys ());
72
+ $ this ->assertCount (9 , $ pageResult ->getRawProperties ());
73
+ $ this ->assertCount (9 , $ pageResult ->getProperties ());
74
+ $ this ->assertCount (9 , $ pageResult ->getPropertyKeys ());
75
+
76
+ // check date and datetime properties
77
+ $ this ->assertTrue ($ pageResult ->getProperty ('DateWithTime ' )->hasTime ());
78
+ $ this ->assertFalse ($ pageResult ->getProperty ('DateWithoutTime ' )->hasTime ());
75
79
76
80
$ this ->assertInstanceOf (Carbon::class, $ pageResult ->getCreatedTime ());
77
81
$ this ->assertInstanceOf (Carbon::class, $ pageResult ->getLastEditedTime ());
@@ -106,9 +110,11 @@ public function it_assembles_properties_for_a_new_page()
106
110
$ checkboxKey = 'CheckboxProperty ' ;
107
111
$ checkboxValue = true ;
108
112
$ dateRangeKey = 'DateRangeProperty ' ;
113
+ $ dateTimeRangeKey = 'DateTimeRangeProperty ' ;
109
114
$ dateRangeStartValue = Carbon::now ()->toDateTime ();
110
115
$ dateRangeEndValue = Carbon::tomorrow ()->toDateTime ();
111
116
$ dateKey = 'DateProperty ' ;
117
+ $ dateTimeKey = 'DateTimeProperty ' ;
112
118
$ dateValue = Carbon::yesterday ()->toDateTime ();
113
119
$ emailKey = 'EmailProperty ' ;
114
120
$ emailValue = 'notion-is-awesome@example.org ' ;
@@ -135,7 +141,9 @@ public function it_assembles_properties_for_a_new_page()
135
141
$ page ->setTitle ('Name ' , $ pageTitle );
136
142
$ page ->setCheckbox ($ checkboxKey , $ checkboxValue );
137
143
$ page ->setDate ($ dateRangeKey , $ dateRangeStartValue , $ dateRangeEndValue );
144
+ $ page ->setDateTime ($ dateTimeRangeKey , $ dateRangeStartValue , $ dateRangeEndValue );
138
145
$ page ->setDate ($ dateKey , $ dateValue );
146
+ $ page ->setDateTime ($ dateTimeKey , $ dateValue );
139
147
$ page ->setEmail ($ emailKey , $ emailValue );
140
148
$ page ->setMultiSelect ($ multiSelectKey , $ multiSelectValues );
141
149
$ page ->setNumber ($ numberKey , $ numberValue );
@@ -175,27 +183,65 @@ public function it_assembles_properties_for_a_new_page()
175
183
$ this ->assertTrue ($ dateRangeProp ->isRange ());
176
184
$ this ->assertEquals ($ dateRangeStartValue , $ dateRangeProp ->getStart ());
177
185
$ this ->assertEquals ($ dateRangeEndValue , $ dateRangeProp ->getEnd ());
186
+ $ this ->assertFalse ($ dateRangeProp ->hasTime ());
178
187
$ this ->assertJson ($ dateRangeProp ->asText ());
179
188
$ this ->assertStringContainsString ($ dateRangeStartValue ->format ('Y-m-d H:i:s ' ), $ dateRangeProp ->asText ());
180
189
$ this ->assertStringContainsString ($ dateRangeEndValue ->format ('Y-m-d H:i:s ' ), $ dateRangeProp ->asText ());
181
190
$ dateRangeContent = $ dateRangeProp ->getRawContent ();
182
191
$ this ->assertArrayHasKey ('date ' , $ dateRangeContent );
183
192
$ this ->assertCount (2 , $ dateRangeContent ['date ' ]);
184
193
$ this ->assertArrayHasKey ('start ' , $ dateRangeContent ['date ' ]);
185
- $ this ->assertEquals ($ dateRangeStartValue ->format ('c ' ), $ dateRangeContent ['date ' ]['start ' ]);
194
+ $ this ->assertEquals ($ dateRangeStartValue ->format ('Y-m-d ' ), $ dateRangeContent ['date ' ]['start ' ]);
186
195
$ this ->assertArrayHasKey ('end ' , $ dateRangeContent ['date ' ]);
187
- $ this ->assertEquals ($ dateRangeEndValue ->format ('c ' ), $ dateRangeContent ['date ' ]['end ' ]);
196
+ $ this ->assertEquals ($ dateRangeEndValue ->format ('Y-m-d ' ), $ dateRangeContent ['date ' ]['end ' ]);
197
+
198
+ // date range (with time)
199
+ $ this ->assertTrue (
200
+ $ this ->assertContainsInstanceOf (Date::class, $ properties )
201
+ );
202
+ $ dateTimeRangeProp = $ page ->getProperty ($ dateTimeRangeKey );
203
+ $ this ->assertInstanceOf (RichDate::class, $ dateTimeRangeProp ->getContent ());
204
+ $ dateTimeRangeContent = $ dateTimeRangeProp ->getContent ();
205
+ $ this ->assertTrue ($ dateTimeRangeProp ->isRange ());
206
+ $ this ->assertEquals ($ dateRangeStartValue , $ dateTimeRangeProp ->getStart ());
207
+ $ this ->assertEquals ($ dateRangeEndValue , $ dateTimeRangeProp ->getEnd ());
208
+ $ this ->assertTrue ($ dateTimeRangeProp ->hasTime ());
209
+ $ this ->assertJson ($ dateTimeRangeProp ->asText ());
210
+ $ this ->assertStringContainsString ($ dateRangeStartValue ->format ('Y-m-d H:i:s ' ), $ dateTimeRangeProp ->asText ());
211
+ $ this ->assertStringContainsString ($ dateRangeEndValue ->format ('Y-m-d H:i:s ' ), $ dateTimeRangeProp ->asText ());
212
+ $ dateTimeRangeContent = $ dateTimeRangeProp ->getRawContent ();
213
+ $ this ->assertArrayHasKey ('date ' , $ dateTimeRangeContent );
214
+ $ this ->assertCount (2 , $ dateTimeRangeContent ['date ' ]);
215
+ $ this ->assertArrayHasKey ('start ' , $ dateTimeRangeContent ['date ' ]);
216
+ $ this ->assertEquals ($ dateRangeStartValue ->format ('c ' ), $ dateTimeRangeContent ['date ' ]['start ' ]);
217
+ $ this ->assertArrayHasKey ('end ' , $ dateTimeRangeContent ['date ' ]);
218
+ $ this ->assertEquals ($ dateRangeEndValue ->format ('c ' ), $ dateTimeRangeContent ['date ' ]['end ' ]);
188
219
189
220
// date
190
221
$ dateProp = $ page ->getProperty ($ dateKey );
191
222
$ this ->assertInstanceOf (RichDate::class, $ dateProp ->getContent ());
192
223
$ this ->assertFalse ($ dateProp ->isRange ());
193
224
$ this ->assertEquals ($ dateValue , $ dateProp ->getStart ());
225
+ $ this ->assertNull ($ dateProp ->getEnd ());
226
+ $ this ->assertFalse ($ dateProp ->hasTime ());
194
227
$ dateContent = $ dateProp ->getRawContent ();
195
228
$ this ->assertArrayHasKey ('date ' , $ dateContent );
196
229
$ this ->assertCount (1 , $ dateContent ['date ' ]);
197
230
$ this ->assertArrayHasKey ('start ' , $ dateContent ['date ' ]);
198
- $ this ->assertEquals ($ dateValue ->format ('c ' ), $ dateContent ['date ' ]['start ' ]);
231
+ $ this ->assertEquals ($ dateValue ->format ('Y-m-d ' ), $ dateContent ['date ' ]['start ' ]);
232
+
233
+ // date (with time)
234
+ $ dateTimeProp = $ page ->getProperty ($ dateTimeKey );
235
+ $ this ->assertInstanceOf (RichDate::class, $ dateTimeProp ->getContent ());
236
+ $ this ->assertFalse ($ dateTimeProp ->isRange ());
237
+ $ this ->assertEquals ($ dateValue , $ dateTimeProp ->getStart ());
238
+ $ this ->assertNull ($ dateTimeProp ->getEnd ());
239
+ $ this ->assertTrue ($ dateTimeProp ->hasTime ());
240
+ $ dateTimeContent = $ dateTimeProp ->getRawContent ();
241
+ $ this ->assertArrayHasKey ('date ' , $ dateTimeContent );
242
+ $ this ->assertCount (1 , $ dateTimeContent ['date ' ]);
243
+ $ this ->assertArrayHasKey ('start ' , $ dateTimeContent ['date ' ]);
244
+ $ this ->assertEquals ($ dateValue ->format ('c ' ), $ dateTimeContent ['date ' ]['start ' ]);
199
245
200
246
// email
201
247
$ this ->assertTrue ($ this ->assertContainsInstanceOf (Email::class, $ properties ));
0 commit comments