Something not being soft deleted just means that the deleted_at
column is null. You could use the assertDatabaseHas
method where that column is empty:
$this->assertDatabaseHas('goals', [
'id' => $goal->id,
'deleted_at' => null
]);
If you wanted to make this a bit more dynamic, you could extend your base TestCase
class with a custom method that will do this for you and allow you to keep your tests with a readable assertion name, and additionally do things for you like find the appropriate table/column names automatically:
public function assertModelNotSoftDeleted(Model $model)
{
return $this->assertDatabaseHas($model->getTable(), [
$model->getKeyName() => $model->getKey(),
$model::DELETED_AT => null,
]);
}