Files
saladeaula.digital/api.saladeaula.digital/tests/routes/orders/test_payment_retries.py

45 lines
1.3 KiB
Python

from http import HTTPMethod, HTTPStatus
from layercake.dynamodb import DynamoDBPersistenceLayer, KeyPair
from ...conftest import HttpApiProxy, LambdaContext
def test_payment_retries(
app,
seeds,
http_api_proxy: HttpApiProxy,
dynamodb_persistence_layer: DynamoDBPersistenceLayer,
lambda_context: LambdaContext,
):
r = app.lambda_handler(
http_api_proxy(
raw_path='/orders/4b23f6f5-5377-476b-b1de-79427c0295f6/payment-retries',
method=HTTPMethod.POST,
body={
'invoice_id': '123',
'credit_card': {
'holder_name': 'Sergio R Siqueira',
'number': '4111111111111111',
'exp_month': '01',
'exp_year': '2026',
'cvv': '123',
},
'installments': 3,
},
),
lambda_context,
)
assert r['statusCode'] == HTTPStatus.CREATED
r = dynamodb_persistence_layer.collection.get_items(
KeyPair('4b23f6f5-5377-476b-b1de-79427c0295f6', 'TRANSACTION')
+ KeyPair(
'4b23f6f5-5377-476b-b1de-79427c0295f6',
'TRANSACTION#STATS',
rename_key='stats',
)
)
assert r['credit_card']['number'] == '4111111111111111'
assert 'last_attempt_succeeded' not in r['stats']