91 lines
3.0 KiB
Python
91 lines
3.0 KiB
Python
import json
|
||
from http import HTTPMethod, HTTPStatus
|
||
|
||
from ..conftest import HttpApiProxy, LambdaContext
|
||
|
||
|
||
def test_billing(
|
||
mock_app,
|
||
dynamodb_seeds,
|
||
http_api_proxy: HttpApiProxy,
|
||
lambda_context: LambdaContext,
|
||
):
|
||
org_id = 'edp8njvgQuzNkLx2ySNfAD'
|
||
# This data was added from seeds
|
||
r = mock_app.lambda_handler(
|
||
http_api_proxy(
|
||
raw_path=f'/billing/{org_id}',
|
||
method=HTTPMethod.GET,
|
||
queryStringParameters={
|
||
'start_date': '2025-07-01',
|
||
'end_date': '2025-07-31',
|
||
},
|
||
),
|
||
lambda_context,
|
||
)
|
||
|
||
assert r['statusCode'] == HTTPStatus.OK
|
||
data = json.loads(r['body'])
|
||
expected = [
|
||
{
|
||
'sk': 'START#2025-07-01#END#2025-07-31#SCHEDULE#AUTO_CLOSE',
|
||
'created_at': '2025-07-24T15:46:43.312549-03:00',
|
||
'id': 'BILLING#ORG#edp8njvgQuzNkLx2ySNfAD',
|
||
'ttl': 1754017200,
|
||
},
|
||
{
|
||
'enrolled_at': '2025-07-25T03:31:11.736247-03:00',
|
||
'author': {'name': 'Carolina Brand', 'id': 'SMEXYk5MQkKCzknJpxqr8n'},
|
||
'sk': 'START#2025-07-01#END#2025-07-31#ENROLLMENT#d2124d5a-caaf-4e27-9edb-8380faf15f35',
|
||
'course': {
|
||
'name': 'NR-11 – Transporte, movimentação, armazenagem e manuseio de materiais',
|
||
'id': 'a810dd22-56c0-4d9b-8cd2-7e2ee9c45839',
|
||
},
|
||
'created_at': '2025-07-25T03:31:17.306858-03:00',
|
||
'id': 'BILLING#ORG#edp8njvgQuzNkLx2ySNfAD',
|
||
'unit_price': 87.2,
|
||
'user': {'name': 'ERICK ALVES DOS SANTOS', 'id': '02157895558'},
|
||
},
|
||
{
|
||
'enrolled_at': '2025-07-24T15:46:37.162960-03:00',
|
||
'author': {'name': 'Carolina Brand', 'id': 'SMEXYk5MQkKCzknJpxqr8n'},
|
||
'sk': 'START#2025-07-01#END#2025-07-31#ENROLLMENT#556e99cf-18b2-459c-a46d-f71a807ba551',
|
||
'course': {
|
||
'name': 'NR-06 - Equipamento de Proteção Individual - EPI',
|
||
'id': '5c119d4b-573c-4d8d-a99d-63756af2f4c5',
|
||
},
|
||
'created_at': '2025-07-24T16:42:41.673797-03:00',
|
||
'id': 'BILLING#ORG#edp8njvgQuzNkLx2ySNfAD',
|
||
'unit_price': 79.2,
|
||
'user': {'name': 'ERICK ALVES DOS SANTOS', 'id': '02157895558'},
|
||
},
|
||
{
|
||
'sk': 'START#2025-07-01#END#2025-07-31',
|
||
'created_at': '2025-07-24T15:46:43.312549-03:00',
|
||
'id': 'BILLING#ORG#edp8njvgQuzNkLx2ySNfAD',
|
||
'status': 'PENDING',
|
||
},
|
||
]
|
||
assert data['items'] == expected
|
||
|
||
|
||
def test_billing_terms(
|
||
mock_app,
|
||
dynamodb_seeds,
|
||
http_api_proxy: HttpApiProxy,
|
||
lambda_context: LambdaContext,
|
||
):
|
||
org_id = 'edp8njvgQuzNkLx2ySNfAD'
|
||
# This data was added from seeds
|
||
r = mock_app.lambda_handler(
|
||
http_api_proxy(
|
||
raw_path=f'/billing/{org_id}/terms',
|
||
method=HTTPMethod.GET,
|
||
),
|
||
lambda_context,
|
||
)
|
||
|
||
data = json.loads(r['body'])
|
||
|
||
assert 'billing_day' in data
|