Skip to content
This repository has been archived by the owner. It is now read-only.

Commit d08fa15

Browse files
Fix scrape listener registration
1 parent 988f611 commit d08fa15

File tree

3 files changed

+21
-11
lines changed

3 files changed

+21
-11
lines changed

src/Scraper/Listeners/ScrapedListener.php

+2-4
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,8 @@ public function __construct($listeners)
1515

1616
public function handle(Scraped $scraped)
1717
{
18-
if (!isset($this->listeners[$scraped->scrapeRequest->type])) {
19-
throw new \InvalidArgumentException();
18+
if (isset($this->listeners[$scraped->scrapeRequest->type])) {
19+
resolve($this->listeners[$scraped->scrapeRequest->type])->handle($scraped);
2020
}
21-
22-
resolve($this->listeners[$scraped->scrapeRequest->type])->handle($scraped);
2321
}
2422
}

src/ScraperProvider.php

+7-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class ScraperProvider extends EventServiceProvider
2929
],
3030
Scraped::class => [
3131
UpdateDataset::class,
32-
ScrapedListener::class
32+
ScrapedListener::class,
3333
],
3434
ConfigurationScraped::class => [
3535
UpdateDataset::class,
@@ -71,5 +71,11 @@ public function register()
7171
->give(function () {
7272
return config('scraper.xpath.ignore-identifiers');
7373
});
74+
75+
$this->app->when(ScrapedListener::class)
76+
->needs('$listeners')
77+
->give(function () {
78+
return config('scraper.listeners');
79+
});
7480
}
7581
}

tests/Unit/Scraper/Listeners/ScrapedListenerTest.php

+12-6
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
namespace Softonic\LaravelIntelligentScraper\Scraper\Listeners;
44

5-
use Mockery\Mock;
65
use Softonic\LaravelIntelligentScraper\Scraper\Events\Scraped;
76
use Softonic\LaravelIntelligentScraper\Scraper\Events\ScrapeRequest;
87
use Tests\TestCase;
@@ -12,8 +11,14 @@ class ScrapedListenerTest extends TestCase
1211
/**
1312
* @test
1413
*/
15-
public function whenReceiveAnUnknownScrapedTypeItShouldThrowAnException(){
16-
$scrapedListener = new ScrapedListener([]);
14+
public function whenReceiveAnUnknownScrapedTypeItShouldDoNothing()
15+
{
16+
$listener = \Mockery::mock(ScrapedListener::class);
17+
\App::instance(get_class($listener), $listener);
18+
19+
$scrapedListener = new ScrapedListener([
20+
'known_type' => get_class($listener),
21+
]);
1722

1823
$scrapedEvent = new Scraped(
1924
new ScrapeRequest(
@@ -24,20 +29,21 @@ public function whenReceiveAnUnknownScrapedTypeItShouldThrowAnException(){
2429
1
2530
);
2631

27-
$this->expectException(\InvalidArgumentException::class);
32+
$listener->shouldNotReceive('handle');
2833

2934
$scrapedListener->handle($scrapedEvent);
3035
}
3136

3237
/**
3338
* @test
3439
*/
35-
public function whenReceiveAKnownScrapedTypeItShouldHandleTheEventWithTheSpecificDependency(){
40+
public function whenReceiveAKnownScrapedTypeItShouldHandleTheEventWithTheSpecificDependency()
41+
{
3642
$listener = \Mockery::mock(ScrapedListener::class);
3743
\App::instance(get_class($listener), $listener);
3844

3945
$scrapedListener = new ScrapedListener([
40-
'known_type' => get_class($listener)
46+
'known_type' => get_class($listener),
4147
]);
4248

4349
$scrapedEvent = new Scraped(

0 commit comments

Comments
 (0)