neuer checkout-pfad: /de/bestellen/paketID und /en/checkout/PackageID
This commit is contained in:
@@ -4,6 +4,7 @@ namespace Tests\Feature\Checkout;
|
||||
|
||||
use App\Models\Package;
|
||||
use App\Models\User;
|
||||
use App\Support\CheckoutRoutes;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Tests\TestCase;
|
||||
|
||||
@@ -307,7 +308,7 @@ class CheckoutAuthTest extends TestCase
|
||||
{
|
||||
$package = Package::factory()->create();
|
||||
|
||||
$response = $this->get(route('checkout.show', $package));
|
||||
$response = $this->get(CheckoutRoutes::wizardUrl($package, 'de'));
|
||||
|
||||
$response->assertStatus(200)
|
||||
->assertInertia(fn ($page) => $page
|
||||
@@ -327,7 +328,7 @@ class CheckoutAuthTest extends TestCase
|
||||
|
||||
public function test_checkout_show_with_invalid_package_returns_404()
|
||||
{
|
||||
$response = $this->get(route('checkout.show', 999));
|
||||
$response = $this->get(CheckoutRoutes::wizardUrl(999, 'de'));
|
||||
|
||||
$response->assertStatus(404);
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ namespace Tests\Feature;
|
||||
|
||||
use App\Models\Package;
|
||||
use App\Models\User;
|
||||
use App\Support\CheckoutRoutes;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Laravel\Socialite\Contracts\Factory as SocialiteFactory;
|
||||
use Laravel\Socialite\Contracts\Provider as SocialiteProvider;
|
||||
@@ -34,19 +35,25 @@ class CheckoutGoogleControllerTest extends TestCase
|
||||
$mock->shouldReceive('driver')->with('google')->andReturn($provider);
|
||||
});
|
||||
|
||||
$response = $this->get('/checkout/auth/google?package_id=' . $package->id . '&locale=de');
|
||||
$response = $this->get('/checkout/auth/google?package_id='.$package->id.'&locale=de');
|
||||
|
||||
$response->assertRedirect('/google/auth');
|
||||
$this->assertSame($package->id, session('checkout_google_payload.package_id'));
|
||||
}
|
||||
|
||||
public function test_callback_creates_user_and_logs_in(): void
|
||||
public function test_callback_logs_in_existing_user_and_attaches_tenant(): void
|
||||
{
|
||||
$package = Package::factory()->create(['price' => 0]);
|
||||
$existingUser = User::factory()->create([
|
||||
'email' => 'checkout-google@example.com',
|
||||
'pending_purchase' => false,
|
||||
]);
|
||||
|
||||
$googleUser = Mockery::mock(SocialiteUserContract::class);
|
||||
$googleUser->shouldReceive('getEmail')->andReturn('checkout-google@example.com');
|
||||
$googleUser->shouldReceive('getName')->andReturn('Checkout Google');
|
||||
$googleUser->shouldReceive('getAvatar')->andReturn(null);
|
||||
$googleUser->shouldReceive('getRaw')->andReturn([]);
|
||||
|
||||
$provider = Mockery::mock(SocialiteProvider::class);
|
||||
$provider->shouldReceive('user')->andReturn($googleUser);
|
||||
@@ -61,9 +68,9 @@ class CheckoutGoogleControllerTest extends TestCase
|
||||
])
|
||||
->get('/checkout/auth/google/callback');
|
||||
|
||||
$response->assertRedirect(route('purchase.wizard', ['package' => $package->id]));
|
||||
$response->assertRedirect(CheckoutRoutes::wizardUrl($package->id, 'de'));
|
||||
|
||||
$this->assertAuthenticated();
|
||||
$this->assertAuthenticatedAs($existingUser);
|
||||
|
||||
$user = auth()->user();
|
||||
$this->assertSame('checkout-google@example.com', $user->email);
|
||||
@@ -82,6 +89,8 @@ class CheckoutGoogleControllerTest extends TestCase
|
||||
$googleUser = Mockery::mock(SocialiteUserContract::class);
|
||||
$googleUser->shouldReceive('getEmail')->andReturn(null);
|
||||
$googleUser->shouldReceive('getName')->andReturn('No Email');
|
||||
$googleUser->shouldReceive('getAvatar')->andReturn(null);
|
||||
$googleUser->shouldReceive('getRaw')->andReturn([]);
|
||||
|
||||
$provider = Mockery::mock(SocialiteProvider::class);
|
||||
$provider->shouldReceive('user')->andReturn($googleUser);
|
||||
@@ -96,7 +105,7 @@ class CheckoutGoogleControllerTest extends TestCase
|
||||
])
|
||||
->get('/checkout/auth/google/callback');
|
||||
|
||||
$response->assertRedirect(route('purchase.wizard', ['package' => $package->id]));
|
||||
$response->assertRedirect(CheckoutRoutes::wizardUrl($package->id, 'en'));
|
||||
$response->assertSessionHas('checkout_google_error');
|
||||
$this->assertGuest();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user