From 9dd6d84d653efb44917c8402d25a1c8250f2c54e Mon Sep 17 00:00:00 2001 From: myrmidex Date: Sun, 26 Apr 2026 13:06:22 +0200 Subject: [PATCH] 7 - Add CrawlOutcomeEnum for crawl attempt outcomes --- app/Enums/CrawlOutcomeEnum.php | 15 ++++++++++ tests/Unit/Enums/CrawlOutcomeEnumTest.php | 35 +++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 app/Enums/CrawlOutcomeEnum.php create mode 100644 tests/Unit/Enums/CrawlOutcomeEnumTest.php diff --git a/app/Enums/CrawlOutcomeEnum.php b/app/Enums/CrawlOutcomeEnum.php new file mode 100644 index 0000000..e7f16dd --- /dev/null +++ b/app/Enums/CrawlOutcomeEnum.php @@ -0,0 +1,15 @@ + 'success', + 'Failed' => 'failed', + 'Timeout' => 'timeout', + 'BlockedRobots' => 'blocked_robots', + 'Blocked4xx' => 'blocked_4xx', + 'Blocked5xx' => 'blocked_5xx', + ]; + + foreach ($expected as $caseName => $backingValue) { + $case = CrawlOutcomeEnum::from($backingValue); + + $this->assertSame($caseName, $case->name, "Case name for '{$backingValue}' should be '{$caseName}'"); + $this->assertSame($backingValue, $case->value, "Backing value for '{$caseName}' should be '{$backingValue}'"); + } + } + + public function test_enum_has_exactly_six_cases(): void + { + $this->assertCount(6, CrawlOutcomeEnum::cases()); + } +}