from decimal import Decimal

import app.events.stopgap.patch_items as app
from layercake.dynamodb import DynamoDBPersistenceLayer, KeyPair

from ...conftest import LambdaContext


def test_patch_items(
    dynamodb_seeds,
    dynamodb_persistence_layer: DynamoDBPersistenceLayer,
    lambda_context: LambdaContext,
):
    event = {
        'detail': {
            'new_image': {
                'id': '9omWNKymwU5U4aeun6mWzZ',
                'items': [
                    {
                        'id': 'a810dd22-56c0-4d9b-8cd2-7e2ee9c45839',
                        'name': 'pytest',
                        'quantity': 17,
                        'unit_price': Decimal('87.2'),
                    },
                ],
            }
        },
    }
    assert app.lambda_handler(event, lambda_context)  # type: ignore

    result = dynamodb_persistence_layer.collection.get_item(
        KeyPair('9omWNKymwU5U4aeun6mWzZ', 'items')
    )

    assert result['items'][0]['id'] == 'dc1a0428-47bf-4db1-a5da-24be49c9fda6'
