from http import HTTPMethod from layercake.dynamodb import DynamoDBPersistenceLayer from jose_ import generate_jwt from ..conftest import HttpApiProxy, LambdaContext def test_authorize( app, seeds, dynamodb_persistence_layer: DynamoDBPersistenceLayer, http_api_proxy: HttpApiProxy, lambda_context: LambdaContext, ): client_id = 'd72d4005-1fa7-4430-9754-80d5e2487bb6' id_token = generate_jwt( user_id='357db1c5-7442-4075-98a3-fbe5c938a419', email='sergio@somosbeta.com.br', ) r = app.lambda_handler( http_api_proxy( raw_path='/authorize', method=HTTPMethod.GET, query_string_parameters={ 'response_type': 'code', 'client_id': client_id, 'redirect_uri': 'https://localhost/callback', 'scope': 'openid', 'nonce': '123', }, cookies=[ f'id_token={id_token}; HttpOnly; Secure', ], ), lambda_context, ) assert 'Location' in r['headers'] r = dynamodb_persistence_layer.query( key_cond_expr='#pk = :pk', expr_attr_name={ '#pk': 'id', }, expr_attr_values={ ':pk': 'OAUTH2#CODE', }, ) # One item was added from seeds assert len(r['items']) == 3