35 lines
1.3 KiB
Python
35 lines
1.3 KiB
Python
import pytest
|
|
from services import onboarding_service
|
|
from repositories.tenant_repository import tenant_repository
|
|
|
|
|
|
def test_merges_partial_updates_preserving_existing_keys():
|
|
tenant = tenant_repository.create({
|
|
'name': 'G Adventures', 'domain': 'gadventures.com', 'tier': 'analyse',
|
|
'status': 'trial', 'max_seats': 5,
|
|
'onboarding_checklist': {**onboarding_service.DEFAULT_CHECKLIST, 'add_competitor': True},
|
|
})
|
|
|
|
result = onboarding_service.update_onboarding(tenant['id'], {'tour_step': 3})
|
|
|
|
assert result['add_competitor'] is True # preserved
|
|
assert result['tour_step'] == 3 # updated
|
|
assert tenant_repository.get_by_id(tenant['id'])['onboarding_checklist'] == result
|
|
|
|
|
|
def test_falls_back_to_default_checklist_when_none_set():
|
|
tenant = tenant_repository.create({
|
|
'name': 'G Adventures', 'domain': 'gadventures.com', 'tier': 'analyse',
|
|
'status': 'trial', 'max_seats': 5,
|
|
})
|
|
|
|
result = onboarding_service.update_onboarding(tenant['id'], {'tour_completed': True})
|
|
|
|
assert result['tour_completed'] is True
|
|
assert result['add_competitor'] is False
|
|
|
|
|
|
def test_unknown_tenant_raises():
|
|
with pytest.raises(ValueError):
|
|
onboarding_service.update_onboarding('does-not-exist', {'tour_completed': True})
|