39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
from pathlib import Path
|
|
import yaml
|
|
from scripts.user_profile import UserProfile
|
|
|
|
|
|
def test_wizard_gating_logic(tmp_path):
|
|
"""Wizard gate should trigger when user.yaml is absent."""
|
|
missing = tmp_path / "user.yaml"
|
|
assert not UserProfile.exists(missing)
|
|
|
|
|
|
def test_wizard_gating_passes_after_setup(tmp_path):
|
|
"""Wizard gate should clear once user.yaml is written."""
|
|
p = tmp_path / "user.yaml"
|
|
p.write_text(yaml.dump({"name": "Test User", "services": {}}))
|
|
assert UserProfile.exists(p)
|
|
|
|
|
|
def test_wizard_gating_empty_file_still_exists(tmp_path):
|
|
"""An empty user.yaml still clears the gate (wizard already ran)."""
|
|
p = tmp_path / "user.yaml"
|
|
p.write_text("")
|
|
assert UserProfile.exists(p)
|
|
|
|
|
|
def test_wizard_incomplete_triggers_wizard(tmp_path):
|
|
"""wizard_complete: false should be treated as 'wizard not done'."""
|
|
p = tmp_path / "user.yaml"
|
|
p.write_text("name: T\nemail: t@t.com\ncareer_summary: x\nwizard_complete: false\n")
|
|
from scripts.user_profile import UserProfile
|
|
u = UserProfile(p)
|
|
assert u.wizard_complete is False
|
|
|
|
def test_wizard_complete_does_not_trigger(tmp_path):
|
|
p = tmp_path / "user.yaml"
|
|
p.write_text("name: T\nemail: t@t.com\ncareer_summary: x\nwizard_complete: true\n")
|
|
from scripts.user_profile import UserProfile
|
|
u = UserProfile(p)
|
|
assert u.wizard_complete is True
|