diff --git a/app/Data/Billing/CreditPackDto.php b/app/Data/Billing/CreditPackDto.php new file mode 100644 index 0000000..b7f82c2 --- /dev/null +++ b/app/Data/Billing/CreditPackDto.php @@ -0,0 +1,35 @@ + '500 Credits', + 'credits' => 500, + 'stripe_price_id' => 'price_small', + 'description' => 'Good for occasional conversions.', + ]); + + expect($dto->key)->toBe('small'); + expect($dto->label)->toBe('500 Credits'); + expect($dto->credits)->toBe(500); + expect($dto->stripePriceId)->toBe('price_small'); + expect($dto->description)->toBe('Good for occasional conversions.'); +}); + +it('throws on missing required config keys', function () { + CreditPackDto::fromConfig('small', [ + 'label' => '500 Credits', + 'credits' => 500, + ]); +})->throws(InvalidArgumentException::class);