from payee.schemas.mixins import SanitizeSpacesMixin def test_sanitise_spaces_removes_leading_and_trailing_spaces(): mixin = SanitizeSpacesMixin() data = {'name': ' John Doe ', 'age': ' 30 '} result = mixin.sanitise_spaces(data) assert result == {'name': 'John Doe', 'age': '30'} def test_sanitise_spaces_handles_nested_list_values(): mixin = SanitizeSpacesMixin() data = {'items': [{'value': ' item1 '}, {'value': ' item2 '}]} result = mixin.sanitise_spaces(data) assert result == {'items': [{'value': 'item1'}, {'value': 'item2'}]} def test_sanitise_spaces_ignores_non_string_values(): mixin = SanitizeSpacesMixin() data = {'count': 123, 'is_active': True} result = mixin.sanitise_spaces(data) assert result == {'count': 123, 'is_active': True} def test_sanitise_spaces_handles_empty_strings(): mixin = SanitizeSpacesMixin() data = {'name': ' '} result = mixin.sanitise_spaces(data) assert result == {'name': ''} def test_sanitise_spaces_handles_empty_list(): mixin = SanitizeSpacesMixin() data = {'items': []} result = mixin.sanitise_spaces(data) assert result == {'items': []}