46 lines
1.4 KiB
PHP
46 lines
1.4 KiB
PHP
<?php
|
|
|
|
use App\Enums\BillingProductPurpose;
|
|
use App\Enums\PaymentTransactionStatus;
|
|
use App\Enums\PaymentTransactionType;
|
|
use App\Mail\PaymentInvoiceMail;
|
|
use App\Models\BillingProduct;
|
|
use App\Models\PaymentTransaction;
|
|
use App\Models\User;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
|
|
uses(RefreshDatabase::class);
|
|
|
|
it('renders invoice emails without the retired credit system', function () {
|
|
$user = User::factory()->create([
|
|
'locale' => 'fr',
|
|
]);
|
|
$product = BillingProduct::query()->create([
|
|
'name' => 'Bowli Plus',
|
|
'purpose' => BillingProductPurpose::SUBSCRIPTION,
|
|
'amount' => 999,
|
|
'currency' => 'eur',
|
|
]);
|
|
$transaction = PaymentTransaction::query()->create([
|
|
'user_id' => $user->getKey(),
|
|
'billing_product_id' => $product->getKey(),
|
|
'type' => PaymentTransactionType::SUBSCRIPTION_INVOICE,
|
|
'status' => PaymentTransactionStatus::PAID,
|
|
'amount' => 999,
|
|
'currency' => 'eur',
|
|
'stripe_invoice_id' => 'in_bowli',
|
|
'invoice_url' => 'https://invoice.stripe.test/in_bowli',
|
|
]);
|
|
|
|
$mail = new PaymentInvoiceMail(
|
|
$user,
|
|
$transaction->load('billingProduct'),
|
|
);
|
|
|
|
$mail
|
|
->assertSeeInHtml('Bowli Plus')
|
|
->assertSeeInHtml('9,99 EUR')
|
|
->assertDontSeeInHtml('Crédits')
|
|
->assertDontSeeInHtml('Credits');
|
|
});
|