@@ -106,9 +106,11 @@ public function it_assembles_properties_for_a_new_page()
106106 $ checkboxKey = 'CheckboxProperty ' ;
107107 $ checkboxValue = true ;
108108 $ dateRangeKey = 'DateRangeProperty ' ;
109+ $ dateTimeRangeKey = 'DateTimeRangeProperty ' ;
109110 $ dateRangeStartValue = Carbon::now ()->toDateTime ();
110111 $ dateRangeEndValue = Carbon::tomorrow ()->toDateTime ();
111112 $ dateKey = 'DateProperty ' ;
113+ $ dateTimeKey = 'DateTimeProperty ' ;
112114 $ dateValue = Carbon::yesterday ()->toDateTime ();
113115 $ emailKey = 'EmailProperty ' ;
114116 $ emailValue = 'notion-is-awesome@example.org ' ;
@@ -135,7 +137,9 @@ public function it_assembles_properties_for_a_new_page()
135137 $ page ->setTitle ('Name ' , $ pageTitle );
136138 $ page ->setCheckbox ($ checkboxKey , $ checkboxValue );
137139 $ page ->setDate ($ dateRangeKey , $ dateRangeStartValue , $ dateRangeEndValue );
140+ $ page ->setDateTime ($ dateTimeRangeKey , $ dateRangeStartValue , $ dateRangeEndValue );
138141 $ page ->setDate ($ dateKey , $ dateValue );
142+ $ page ->setDateTime ($ dateTimeKey , $ dateValue );
139143 $ page ->setEmail ($ emailKey , $ emailValue );
140144 $ page ->setMultiSelect ($ multiSelectKey , $ multiSelectValues );
141145 $ page ->setNumber ($ numberKey , $ numberValue );
@@ -186,6 +190,28 @@ public function it_assembles_properties_for_a_new_page()
186190 $ this ->assertArrayHasKey ('end ' , $ dateRangeContent ['date ' ]);
187191 $ this ->assertEquals ($ dateRangeEndValue ->format ('Y-m-d ' ), $ dateRangeContent ['date ' ]['end ' ]);
188192
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+
189215 // date
190216 $ dateProp = $ page ->getProperty ($ dateKey );
191217 $ this ->assertInstanceOf (RichDate::class, $ dateProp ->getContent ());
@@ -197,6 +223,17 @@ public function it_assembles_properties_for_a_new_page()
197223 $ this ->assertArrayHasKey ('start ' , $ dateContent ['date ' ]);
198224 $ this ->assertEquals ($ dateValue ->format ('Y-m-d ' ), $ dateContent ['date ' ]['start ' ]);
199225
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+
200237 // email
201238 $ this ->assertTrue ($ this ->assertContainsInstanceOf (Email::class, $ properties ));
202239 $ mailProp = $ page ->getProperty ($ emailKey );
0 commit comments