app.bettersight.io/backend/tests/services/test_onboarding_service.py

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})