diff --git a/app/Listeners/UrlDiscoveredListener.php b/app/Listeners/UrlDiscoveredListener.php index f528017..535951a 100644 --- a/app/Listeners/UrlDiscoveredListener.php +++ b/app/Listeners/UrlDiscoveredListener.php @@ -21,17 +21,13 @@ public function handle(UrlDiscovered $event): void ['status' => PageStatusEnum::Discovered, 'instance_id' => $event->instanceId], ); - if ($event->postUrl === null) { + if ($event->postUrl === null || $event->postUrl === $event->url) { return; } $sourcePage = Page::firstOrCreate( ['url' => $event->postUrl], - [ - 'status' => PageStatusEnum::Fetched, - 'instance_id' => $event->instanceId, - 'fetched_at' => $event->discoveredAt, - ], + ['status' => PageStatusEnum::Discovered, 'instance_id' => $event->instanceId], ); PageLink::firstOrCreate([ diff --git a/tests/Feature/UrlDiscoveryTest.php b/tests/Feature/UrlDiscoveryTest.php index 014567a..ff36ed2 100644 --- a/tests/Feature/UrlDiscoveryTest.php +++ b/tests/Feature/UrlDiscoveryTest.php @@ -72,10 +72,9 @@ public function test_listener_creates_target_page_and_source_page_with_link(): v // Source page $sourcePage = Page::where('url', 'https://mastodon.social/@alice/109876543210')->first(); $this->assertNotNull($sourcePage); - $this->assertSame(PageStatusEnum::Fetched, $sourcePage->status); + $this->assertSame(PageStatusEnum::Discovered, $sourcePage->status); $this->assertSame($instance->id, $sourcePage->instance_id); - $this->assertNotNull($sourcePage->fetched_at); - $this->assertTrue($discoveredAt->equalTo($sourcePage->fetched_at)); + $this->assertNull($sourcePage->fetched_at); // Edge $link = PageLink::where('source_page_id', $sourcePage->id)