All checks were successful
linter / quality (pull_request) Successful in 1m37s
security / Dependency Audit (pull_request) Successful in 1m36s
security / Static Analysis (pull_request) Successful in 1m25s
tests / ci (8.4) (pull_request) Successful in 1m57s
tests / ci (8.5) (pull_request) Successful in 1m31s
- SyncTownsTest: covers API syncing, pagination, upsert, retired towns, error logging, and success logging - TownSearchTest: covers auth requirement, min query length, prefix matching, state filtering, retired town exclusion, result limit, response shape, and ordering - Update TownFactory with retired() and inState() states
43 lines
1.1 KiB
PHP
43 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace Database\Factories;
|
|
|
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
|
|
|
/**
|
|
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Town>
|
|
*/
|
|
class TownFactory extends Factory
|
|
{
|
|
/**
|
|
* Define the model's default state.
|
|
*
|
|
* @return array<string, mixed>
|
|
*/
|
|
public function definition(): array
|
|
{
|
|
return [
|
|
'town_pid' => 'TWN'.$this->faker->unique()->numerify('####'),
|
|
'town_name' => $this->faker->city(),
|
|
'state' => $this->faker->numberBetween(1, 8),
|
|
'population' => $this->faker->numberBetween(100, 500000),
|
|
'town_class' => $this->faker->numberBetween(0, 5),
|
|
'date_retired' => null,
|
|
];
|
|
}
|
|
|
|
public function retired(): static
|
|
{
|
|
return $this->state(fn (array $attributes) => [
|
|
'date_retired' => now()->subDays(30),
|
|
]);
|
|
}
|
|
|
|
public function inState(\App\Enums\AustralianState $state): static
|
|
{
|
|
return $this->state(fn (array $attributes) => [
|
|
'state' => $state->value,
|
|
]);
|
|
}
|
|
}
|