Skip to content

Commit aeeb145

Browse files
committed
one more
1 parent d6df5eb commit aeeb145

File tree

2 files changed

+55
-6
lines changed

2 files changed

+55
-6
lines changed

backend/tests/unit/test_user.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,13 @@
2020

2121
# Test DB Configuration - Always require Postgres for full parity
2222
POSTGRES_DATABASE_URL = os.getenv("POSTGRES_TEST_DATABASE_URL")
23+
2324
if not POSTGRES_DATABASE_URL:
24-
raise RuntimeError(
25-
"POSTGRES_DATABASE_URL is not set. Please export a Postgres URL, e.g. "
26-
"postgresql+psycopg2://postgres:postgres@db:5432/llsc_test"
25+
# Skip all tests in this file if Postgres isn't available
26+
pytest.skip(
27+
"POSTGRES_TEST_DATABASE_URL not set. "
28+
"These tests require a Postgres database. Set POSTGRES_TEST_DATABASE_URL to run them.",
29+
allow_module_level=True,
2730
)
2831
engine = create_engine(POSTGRES_DATABASE_URL)
2932
TestingSessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

backend/tests/unit/test_user_data_update.py

Lines changed: 49 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,15 @@
2121

2222
# Test DB Configuration - Always require Postgres for full parity
2323
POSTGRES_DATABASE_URL = os.getenv("POSTGRES_TEST_DATABASE_URL")
24+
2425
if not POSTGRES_DATABASE_URL:
25-
raise RuntimeError(
26-
"POSTGRES_TEST_DATABASE_URL is not set. Please export a Postgres URL, e.g. "
27-
"postgresql+psycopg2://postgres:postgres@db:5432/llsc_test"
26+
# Skip all tests in this file if Postgres isn't available
27+
pytest.skip(
28+
"POSTGRES_TEST_DATABASE_URL not set. "
29+
"These tests require a Postgres database. Set POSTGRES_TEST_DATABASE_URL to run them.",
30+
allow_module_level=True,
2831
)
32+
2933
engine = create_engine(POSTGRES_DATABASE_URL)
3034
TestingSessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
3135

@@ -176,6 +180,13 @@ async def test_update_simple_fields(db_session, test_user_with_data):
176180
assert result.user_data.last_name == "Doe"
177181
assert result.user_data.date_of_birth == date(1990, 1, 1)
178182

183+
# Verify that User table was also updated (name sync)
184+
db_session.refresh(user)
185+
assert user.first_name == "Jane"
186+
# Verify response top-level fields reflect the updated name
187+
assert result.first_name == "Jane"
188+
assert result.last_name == "Doe" # last_name wasn't updated, so should remain "Doe"
189+
179190

180191
@pytest.mark.asyncio
181192
async def test_update_array_fields(db_session, test_user_with_data):
@@ -740,3 +751,38 @@ async def test_create_availability_user_not_found(db_session):
740751

741752
# The service currently raises 500 for user not found (could be improved to 404)
742753
assert exc_info.value.status_code == 500
754+
755+
756+
@pytest.mark.asyncio
757+
async def test_update_name_syncs_to_user_table(db_session, test_user_with_data):
758+
"""Test that updating first_name and last_name in UserData also updates User table"""
759+
user, user_data = test_user_with_data
760+
user_service = UserService(db_session)
761+
762+
# Verify initial state
763+
assert user.first_name == "John"
764+
assert user.last_name == "Doe"
765+
assert user_data.first_name == "John"
766+
assert user_data.last_name == "Doe"
767+
768+
# Update names via UserData
769+
update_request = UserDataUpdateRequest(
770+
first_name="Jane",
771+
last_name="Smith",
772+
)
773+
774+
result = await user_service.update_user_data_by_id(str(user.id), update_request)
775+
776+
# Verify UserData was updated
777+
db_session.refresh(user_data)
778+
assert user_data.first_name == "Jane"
779+
assert user_data.last_name == "Smith"
780+
781+
# Verify User table was also updated (for consistency)
782+
db_session.refresh(user)
783+
assert user.first_name == "Jane"
784+
assert user.last_name == "Smith"
785+
786+
# Verify response also reflects the updated names
787+
assert result.first_name == "Jane"
788+
assert result.last_name == "Smith"

0 commit comments

Comments
 (0)