Skip to content

Commit 7c361c9

Browse files
Generate assertions for Eloquent update statements (#288)
1 parent 9237302 commit 7c361c9

File tree

5 files changed

+34
-0
lines changed

5 files changed

+34
-0
lines changed

src/Generators/TestGenerator.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,14 @@ protected function buildTestCases(Controller $controller)
422422
$tested_bits |= self::TESTS_DELETE;
423423
$setup['data'][] = sprintf('$%s = factory(%s::class)->create();', $variable, $model);
424424
$assertions['generic'][] = sprintf('$this->assertDeleted($%s);', $variable);
425+
} elseif ($statement->operation() === 'update') {
426+
$assertions['sanity'][] = sprintf('$%s->refresh();', $variable);
427+
428+
if ($request_data) {
429+
foreach ($request_data as $key => $datum) {
430+
$assertions['generic'][] = sprintf('$this->assertEquals(%s, $%s->%s);', $datum, $variable, $key);
431+
}
432+
}
425433
}
426434
} elseif ($statement instanceof QueryStatement) {
427435
$this->addRefreshDatabaseTrait($controller);

tests/fixtures/tests/api-shorthand-validation.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,14 @@ public function update_behaves_as_expected()
112112
'document' => $document,
113113
'expiry_date' => $expiry_date,
114114
]);
115+
116+
$certificate->refresh();
117+
118+
$this->assertEquals($name, $certificate->name);
119+
$this->assertEquals($certificate_type->id, $certificate->certificate_type_id);
120+
$this->assertEquals($reference, $certificate->reference);
121+
$this->assertEquals($document, $certificate->document);
122+
$this->assertEquals($expiry_date, $certificate->expiry_date);
115123
}
116124

117125

tests/fixtures/tests/certificate-pascal-case-example.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,14 @@ public function update_behaves_as_expected()
112112
'document' => $document,
113113
'expiry_date' => $expiry_date,
114114
]);
115+
116+
$certificate->refresh();
117+
118+
$this->assertEquals($name, $certificate->name);
119+
$this->assertEquals($certificate_type->id, $certificate->certificate_type_id);
120+
$this->assertEquals($reference, $certificate->reference);
121+
$this->assertEquals($document, $certificate->document);
122+
$this->assertEquals($expiry_date, $certificate->expiry_date);
115123
}
116124

117125

tests/fixtures/tests/certificate-type-pascal-case-example.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,10 @@ public function update_behaves_as_expected()
9191
$response = $this->put(route('certificate-type.update', $certificateType), [
9292
'name' => $name,
9393
]);
94+
95+
$certificateType->refresh();
96+
97+
$this->assertEquals($name, $certificateType->name);
9498
}
9599

96100

tests/fixtures/tests/models-with-custom-namespace.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,12 @@ public function update_behaves_as_expected()
101101
'image' => $image,
102102
'active' => $active,
103103
]);
104+
105+
$category->refresh();
106+
107+
$this->assertEquals($name, $category->name);
108+
$this->assertEquals($image, $category->image);
109+
$this->assertEquals($active, $category->active);
104110
}
105111

106112

0 commit comments

Comments
 (0)