@@ -97,6 +97,7 @@ protected function buildTestCases(Controller $controller): string
97
97
'mock ' => [],
98
98
];
99
99
$ request_data = [];
100
+ $ model_columns = [];
100
101
$ tested_bits = 0 ;
101
102
102
103
$ model = $ controller ->prefix ();
@@ -227,11 +228,17 @@ protected function buildTestCases(Controller $controller): string
227
228
if ($ factory ) {
228
229
[$ faker , $ variable_name ] = $ factory ;
229
230
} else {
230
- $ faker = sprintf ('$%s = $this->faker->%s; ' , $ data , FakerRegistry::fakerData ($ local_column ->name ()) ?? FakerRegistry::fakerDataType ($ local_model ->column ($ column )->dataType ()));
231
+ if ($ local_column ->isDate ()) {
232
+ $ this ->addImport ($ controller , 'Illuminate \\Support \\Carbon ' );
233
+ $ faker = sprintf ('$%s = Carbon::parse($this->faker->%s); ' , $ data , FakerRegistry::fakerData ($ local_column ->name ()) ?? FakerRegistry::fakerDataType ($ local_model ->column ($ column )->dataType ()));
234
+ } else {
235
+ $ faker = sprintf ('$%s = $this->faker->%s; ' , $ data , FakerRegistry::fakerData ($ local_column ->name ()) ?? FakerRegistry::fakerDataType ($ local_model ->column ($ column )->dataType ()));
236
+ }
231
237
}
232
238
233
239
$ setup ['data ' ][] = $ faker ;
234
240
$ request_data [$ data ] = '$ ' . $ variable_name ;
241
+ $ model_columns [$ data ] = '$ ' . $ variable_name ;
235
242
} elseif (!is_null ($ local_model )) {
236
243
foreach ($ local_model ->columns () as $ local_column ) {
237
244
if (in_array ($ local_column ->name (), ['id ' , 'softdeletes ' , 'softdeletestz ' ])) {
@@ -246,12 +253,27 @@ protected function buildTestCases(Controller $controller): string
246
253
if ($ factory ) {
247
254
[$ faker , $ variable_name ] = $ factory ;
248
255
} else {
249
- $ faker = sprintf ('$%s = $this->faker->%s; ' , $ local_column ->name (), FakerRegistry::fakerData ($ local_column ->name ()) ?? FakerRegistry::fakerDataType ($ local_column ->dataType ()));
256
+ if ($ local_column ->isDate ()) {
257
+ $ this ->addImport ($ controller , 'Illuminate \\Support \\Carbon ' );
258
+ $ faker = sprintf ('$%s = Carbon::parse($this->faker->%s); ' , $ local_column ->name (), FakerRegistry::fakerData ($ local_column ->name ()) ?? FakerRegistry::fakerDataType ($ local_column ->dataType ()));
259
+ } else {
260
+ $ faker = sprintf ('$%s = $this->faker->%s; ' , $ local_column ->name (), FakerRegistry::fakerData ($ local_column ->name ()) ?? FakerRegistry::fakerDataType ($ local_column ->dataType ()));
261
+ }
250
262
$ variable_name = $ local_column ->name ();
251
263
}
252
264
253
265
$ setup ['data ' ][] = $ faker ;
254
- $ request_data [$ local_column ->name ()] = '$ ' . $ variable_name ;
266
+ if ($ local_column ->isDate ()) {
267
+ if ($ local_column ->dataType () === 'date ' ) {
268
+ $ request_data [$ local_column ->name ()] = '$ ' . $ variable_name . '->toDateString() ' ;
269
+ } else {
270
+ $ request_data [$ local_column ->name ()] = '$ ' . $ variable_name . '->toDateTimeString() ' ;
271
+ }
272
+ } else {
273
+ $ request_data [$ local_column ->name ()] = '$ ' . $ variable_name ;
274
+ }
275
+
276
+ $ model_columns [$ local_column ->name ()] = '$ ' . $ variable_name ;
255
277
}
256
278
}
257
279
}
@@ -404,11 +426,11 @@ protected function buildTestCases(Controller $controller): string
404
426
if ($ statement ->operation () === 'save ' ) {
405
427
$ tested_bits |= self ::TESTS_SAVE ;
406
428
407
- if ($ request_data ) {
429
+ if ($ model_columns ) {
408
430
$ indent = str_pad (' ' , 12 );
409
431
$ plural = Str::plural ($ variable );
410
432
$ assertion = sprintf ('$%s = %s::query() ' , $ plural , $ model );
411
- foreach ($ request_data as $ key => $ datum ) {
433
+ foreach ($ model_columns as $ key => $ datum ) {
412
434
$ assertion .= PHP_EOL . sprintf ('%s->where( \'%s \', %s) ' , $ indent , $ key , $ datum );
413
435
}
414
436
$ assertion .= PHP_EOL . $ indent . '->get(); ' ;
@@ -435,13 +457,12 @@ protected function buildTestCases(Controller $controller): string
435
457
} elseif ($ statement ->operation () === 'update ' ) {
436
458
$ assertions ['sanity ' ][] = sprintf ('$%s->refresh(); ' , $ variable );
437
459
438
- if ($ request_data ) {
460
+ if ($ model_columns ) {
439
461
/** @var \Blueprint\Models\Model $local_model */
440
462
$ local_model = $ this ->tree ->modelForContext ($ model );
441
- foreach ($ request_data as $ key => $ datum ) {
442
- if (!is_null ($ local_model ) && $ local_model ->hasColumn ($ key ) && $ local_model ->column ($ key )->dataType () === 'date ' ) {
443
- $ this ->addImport ($ controller , 'Carbon \\Carbon ' );
444
- $ assertions ['generic ' ][] = sprintf ('$this->assertEquals(Carbon::parse(%s), $%s->%s); ' , $ datum , $ variable , $ key );
463
+ foreach ($ model_columns as $ key => $ datum ) {
464
+ if (!is_null ($ local_model ) && $ local_model ->hasColumn ($ key ) && $ local_model ->column ($ key )->dataType () === 'timestamp ' ) {
465
+ $ assertions ['generic ' ][] = sprintf ('$this->assertEquals(%s->timestamp, $%s->%s); ' , $ datum , $ variable , $ key );
445
466
} else {
446
467
$ assertions ['generic ' ][] = sprintf ('$this->assertEquals(%s, $%s->%s); ' , $ datum , $ variable , $ key );
447
468
}
0 commit comments