1717from polar .exceptions import PolarRequestValidationError
1818from polar .models import Customer , Organization , Product , User
1919from polar .models .account import Account
20+ from polar .models .organization import (
21+ OrganizationDetails as OrganizationDetailsDict ,
22+ )
2023from polar .models .organization import (
2124 OrganizationNotificationSettings ,
2225 OrganizationStatus ,
@@ -239,6 +242,10 @@ async def test_update_details_does_not_submit_for_review(
239242 ) -> None :
240243 enqueue_job_mock = mocker .patch ("polar.organization.service.enqueue_job" )
241244
245+ organization .status = OrganizationStatus .CREATED
246+ session .add (organization )
247+ await session .flush ()
248+
242249 result = await organization_service .update (
243250 session ,
244251 organization ,
@@ -271,6 +278,9 @@ async def test_update_with_submit_for_review(
271278 organization : Organization ,
272279 ) -> None :
273280 enqueue_job_mock = mocker .patch ("polar.organization.service.enqueue_job" )
281+ organization .status = OrganizationStatus .CREATED
282+ session .add (organization )
283+ await session .flush ()
274284 await organization_service .update (
275285 session ,
276286 organization ,
@@ -306,6 +316,9 @@ async def test_update_with_submit_for_review_requires_relevant_fields(
306316 session : AsyncSession ,
307317 organization : Organization ,
308318 ) -> None :
319+ organization .status = OrganizationStatus .CREATED
320+ session .add (organization )
321+ await session .flush ()
309322 await organization_service .update (
310323 session ,
311324 organization ,
@@ -328,6 +341,38 @@ async def test_update_with_submit_for_review_requires_relevant_fields(
328341 assert ("body" , "socials" ) in error_locations
329342 assert ("body" , "details" , "product_description" ) in error_locations
330343
344+ @pytest .mark .auth
345+ async def test_update_details_ignored_after_initial_status (
346+ self ,
347+ session : AsyncSession ,
348+ organization : Organization ,
349+ ) -> None :
350+ original_details : OrganizationDetailsDict = {
351+ "product_description" : "Original description for the organization." ,
352+ "selling_categories" : ["Software / SaaS" ],
353+ "pricing_models" : ["Subscription" ],
354+ "switching" : False ,
355+ }
356+ organization .details = original_details
357+ organization .status = OrganizationStatus .ACTIVE
358+ session .add (organization )
359+ await session .flush ()
360+
361+ result = await organization_service .update (
362+ session ,
363+ organization ,
364+ OrganizationUpdate (
365+ details = OrganizationDetails (
366+ product_description = "Attempted tampering after approval." ,
367+ selling_categories = ["Other" ],
368+ pricing_models = ["One-time" ],
369+ switching = True ,
370+ )
371+ ),
372+ )
373+
374+ assert result .details == original_details
375+
331376
332377@pytest .mark .asyncio
333378async def test_get_next_invoice_number_organization (
0 commit comments