forked from eatvio/eatvio_app
48 lines
1.6 KiB
Dart
48 lines
1.6 KiB
Dart
import 'package:eatvio_app/features/chat/models/payment_model.dart';
|
||
import 'package:flutter_test/flutter_test.dart';
|
||
|
||
import '../../../fixtures/fixture_reader.dart';
|
||
|
||
void main() {
|
||
group('PaymentModel', () {
|
||
test('создает PaymentModel с правильными значениями', () {
|
||
final model = PaymentModel(paymentUrl: 'https://example.com/payment');
|
||
|
||
expect(model.paymentUrl, 'https://example.com/payment');
|
||
});
|
||
|
||
test('fromJson создает PaymentModel из JSON', () {
|
||
final json = {'checkout_url': 'https://example.com/payment'};
|
||
|
||
final model = PaymentModel.fromJson(json);
|
||
|
||
expect(model.paymentUrl, 'https://example.com/payment');
|
||
});
|
||
|
||
test(
|
||
'fromJson парсит ответ alfa-bank (checkout_url, order_id, payment_provider)',
|
||
() {
|
||
final json = FixtureReader.readAsMap(
|
||
'chat/payments/payment_response_alfa_bank.json',
|
||
);
|
||
|
||
final model = PaymentModel.fromJson(json);
|
||
|
||
expect(model.paymentUrl, 'https://qr.nspk.ru/ASDFASDFASDFASDF');
|
||
expect(model.orderId, 'alfa_c29_k15138_t1712345678_r1234');
|
||
expect(model.paymentProvider, 'alfa-bank');
|
||
},
|
||
);
|
||
|
||
test('fromJson парсит mock-ответ (checkout_url без order_id)', () {
|
||
final json = FixtureReader.readAsMap('chat/payments/payment_response.json');
|
||
|
||
final model = PaymentModel.fromJson(json);
|
||
|
||
expect(model.paymentUrl, 'https://example.com/checkout/payment-123');
|
||
expect(model.orderId, isNull);
|
||
expect(model.paymentProvider, isNull);
|
||
});
|
||
});
|
||
}
|