29 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
| <?php
 | |
| 
 | |
| namespace Tests\Feature\Member;
 | |
| 
 | |
| use App\Member\Member;
 | |
| use Illuminate\Foundation\Testing\DatabaseTransactions;
 | |
| use Illuminate\Support\Facades\Http;
 | |
| use Tests\TestCase;
 | |
| 
 | |
| class NominatimTest extends TestCase
 | |
| {
 | |
|     use DatabaseTransactions;
 | |
| 
 | |
|     public function testItGetsCoordinates(): void
 | |
|     {
 | |
|         Member::enableGeolocation();
 | |
|         Http::fake([
 | |
|             'https://nominatim.openstreetmap.org/search/*' => Http::response('[{"place_id":262556558,"osm_type":"way","osm_id":785100564,"lat":"51.1775766","lon":"7.025311390606571"}]', 200),
 | |
|         ]);
 | |
|         $this->login()->loginNami();
 | |
| 
 | |
|         $member = Member::factory()->defaults()->create(['address' => 'Itterstr 11', 'zip' => '55667', 'location' => 'Koln']);
 | |
| 
 | |
|         $this->assertEquals(51.1775766, $member->fresh()->lat);
 | |
|         $this->assertEquals(7.0253113906066, $member->fresh()->lon);
 | |
|         Http::assertSent(fn ($request) => 'https://nominatim.openstreetmap.org/search/Itterstr%2011%2C%2055667%20Koln?format=json&addressdetails=1' === $request->url());
 | |
|     }
 | |
| }
 |