@@ -82,11 +82,11 @@ public function testConstructorAppendsIndexToPagePathEndingWithSlash(): void
8282 public function testWithModeReturnsNewInstance (): void
8383 {
8484 $ request1 = new PageRequest ('/test ' );
85- $ request2 = $ request1 ->withMode ('WORKING ' );
85+ $ request2 = $ request1 ->withMode ('PREVIEW_MODE ' );
8686
8787 $ this ->assertNotSame ($ request1 , $ request2 );
8888 $ this ->assertNull ($ request1 ->getMode ());
89- $ this ->assertEquals ('WORKING ' , $ request2 ->getMode ());
89+ $ this ->assertEquals ('PREVIEW_MODE ' , $ request2 ->getMode ());
9090 }
9191
9292 /**
@@ -97,7 +97,7 @@ public function testWithModeThrowsExceptionForInvalidMode(): void
9797 $ request = new PageRequest ('/test ' );
9898
9999 $ this ->expectException (InvalidArgumentException::class);
100- $ this ->expectExceptionMessage ('Invalid mode "INVALID". Valid modes are: LIVE, WORKING , EDIT_MODE ' );
100+ $ this ->expectExceptionMessage ('Invalid mode "INVALID". Valid modes are: LIVE, PREVIEW_MODE , EDIT_MODE ' );
101101
102102 $ request ->withMode ('INVALID ' );
103103 }
@@ -239,27 +239,55 @@ public function testBuildQueryParamsReturnsEmptyArrayWhenNoParamsSet(): void
239239 $ this ->assertEquals ([], $ request ->buildQueryParams ());
240240 }
241241
242+ /**
243+ * Test that withPublishDate sets the publish date and returns a new instance
244+ */
245+ public function testWithPublishDateReturnsNewInstance (): void
246+ {
247+ $ request1 = new PageRequest ('/test ' );
248+ $ request2 = $ request1 ->withPublishDate ('2025-07-01T17:30:39Z ' );
249+
250+ $ this ->assertNotSame ($ request1 , $ request2 );
251+ $ this ->assertNull ($ request1 ->getPublishDate ());
252+ $ this ->assertEquals ('2025-07-01T17:30:39Z ' , $ request2 ->getPublishDate ());
253+ }
254+
255+ /**
256+ * Test that withPublishDate throws an exception for invalid format
257+ */
258+ public function testWithPublishDateThrowsExceptionForInvalidFormat (): void
259+ {
260+ $ request = new PageRequest ('/test ' );
261+
262+ $ this ->expectException (InvalidArgumentException::class);
263+ $ this ->expectExceptionMessage ('Invalid publish date "2025-07-01 17:30:39". Date must be in ISO 8601 UTC format (e.g., 2025-07-01T17:30:39Z) ' );
264+
265+ $ request ->withPublishDate ('2025-07-01 17:30:39 ' );
266+ }
267+
242268 /**
243269 * Test that buildQueryParams returns correct params when all params are set
244270 */
245271 public function testBuildQueryParamsReturnsCorrectParamsWhenAllParamsSet (): void
246272 {
247273 $ request = new PageRequest ('/test ' );
248274 $ request = $ request
249- ->withMode ('WORKING ' )
275+ ->withMode ('PREVIEW_MODE ' )
250276 ->withHostId (self ::VALID_UUID )
251277 ->withLanguageId (1 )
252278 ->withPersonaId ('persona123 ' )
253279 ->withFireRules (true )
254- ->withDepth (2 );
280+ ->withDepth (2 )
281+ ->withPublishDate ('2025-07-01T17:30:39Z ' );
255282
256283 $ expectedParams = [
257- 'mode ' => 'WORKING ' ,
284+ 'mode ' => 'PREVIEW_MODE ' ,
258285 'host_id ' => self ::VALID_UUID ,
259286 'language_id ' => 1 ,
260287 'com.dotmarketing.persona.id ' => 'persona123 ' ,
261288 'fireRules ' => 'true ' ,
262289 'depth ' => 2 ,
290+ 'publishDate ' => '2025-07-01T17:30:39Z ' ,
263291 ];
264292
265293 $ this ->assertEquals ($ expectedParams , $ request ->buildQueryParams ());
@@ -271,7 +299,7 @@ public function testBuildQueryParamsReturnsCorrectParamsWhenAllParamsSet(): void
271299 public function testMethodChainingWorksCorrectly (): void
272300 {
273301 $ request = (new PageRequest ('/test ' ))
274- ->withMode ('WORKING ' )
302+ ->withMode ('PREVIEW_MODE ' )
275303 ->withHostId (self ::VALID_UUID )
276304 ->withLanguageId (1 )
277305 ->withPersonaId ('persona123 ' )
@@ -280,7 +308,7 @@ public function testMethodChainingWorksCorrectly(): void
280308
281309 $ this ->assertEquals ('json ' , $ request ->getFormat ());
282310 $ this ->assertEquals ('/test ' , $ request ->getPagePath ());
283- $ this ->assertEquals ('WORKING ' , $ request ->getMode ());
311+ $ this ->assertEquals ('PREVIEW_MODE ' , $ request ->getMode ());
284312 $ this ->assertEquals (self ::VALID_UUID , $ request ->getHostId ());
285313 $ this ->assertEquals (1 , $ request ->getLanguageId ());
286314 $ this ->assertEquals ('persona123 ' , $ request ->getPersonaId ());
0 commit comments