|
13 | 13 | use OwenIt\Auditing\Models\Audit; |
14 | 14 | use OwenIt\Auditing\Redactors\LeftRedactor; |
15 | 15 | use OwenIt\Auditing\Redactors\RightRedactor; |
| 16 | +use OwenIt\Auditing\Tests\Models\ApiModel; |
16 | 17 | use OwenIt\Auditing\Tests\Models\Article; |
17 | 18 | use OwenIt\Auditing\Tests\Models\User; |
18 | 19 | use ReflectionClass; |
@@ -995,9 +996,16 @@ public function itTransitionsWhenTheAuditAuditableIdTypeDoesNotMatchTheModelIdTy |
995 | 996 | { |
996 | 997 | $model = factory(Article::class)->create(); |
997 | 998 |
|
| 999 | + // Key depends on type |
| 1000 | + if ($model->getKeyType() == 'string') { |
| 1001 | + $key = (string) $model->id; |
| 1002 | + } else { |
| 1003 | + $key = (int) $model->id; |
| 1004 | + } |
| 1005 | + |
998 | 1006 | $audit = factory(Audit::class)->create([ |
999 | 1007 | 'auditable_type' => Article::class, |
1000 | | - 'auditable_id' => (string) $model->id, |
| 1008 | + 'auditable_id' => $key, |
1001 | 1009 | ]); |
1002 | 1010 |
|
1003 | 1011 | $this->assertInstanceOf(Auditable::class, $model->transitionTo($audit)); |
@@ -1110,6 +1118,24 @@ public function itTransitionsToAnotherModelState( |
1110 | 1118 | $this->assertSame($newExpectation, $models[1]->getDirty()); |
1111 | 1119 | } |
1112 | 1120 |
|
| 1121 | + /** |
| 1122 | + * @test |
| 1123 | + */ |
| 1124 | + public function itWorksWithStringKeyModels() |
| 1125 | + { |
| 1126 | + $model = factory(ApiModel::class)->create(); |
| 1127 | + $model->save(); |
| 1128 | + $model->refresh(); |
| 1129 | + |
| 1130 | + $this->assertCount(1, $model->audits); |
| 1131 | + |
| 1132 | + $model->content = 'Something else'; |
| 1133 | + $model->save(); |
| 1134 | + $model->refresh(); |
| 1135 | + |
| 1136 | + $this->assertCount(2, $model->audits); |
| 1137 | + } |
| 1138 | + |
1113 | 1139 | /** |
1114 | 1140 | * @return array |
1115 | 1141 | */ |
|
0 commit comments