import importlib.util
from pathlib import Path

PIPELINE_PATH = Path('/Users/bot1/.hermes/profiles/it/scripts/liangzhu_daily_flow_bot1.py')
PROJECT_ROOT = Path(__file__).resolve().parents[1]


def load_pipeline_module():
    spec = importlib.util.spec_from_file_location('liangzhu_daily_flow_bot1', PIPELINE_PATH)
    module = importlib.util.module_from_spec(spec)
    assert spec.loader is not None
    spec.loader.exec_module(module)
    return module


def test_pipeline_exposes_split_dashboard_verification_hook():
    module = load_pipeline_module()
    assert module.SPLIT_DASHBOARD_URL == 'https://wwyl.yipeng.online/liangzhu-dashboard/'
    assert callable(module.verify_split_dashboard)


def test_notify_prefers_split_dashboard_url_for_formal_html_flow():
    module = load_pipeline_module()
    summary = {
        'run_day': '2026-06-02',
        'qianniu': {'file_count': 40},
        'jd': {'file_count': 5},
        'import': {'raw_rows': 10, 'facts': {}},
        'split_dashboard': {'url': module.SPLIT_DASHBOARD_URL, 'latest_date': '2026-05-31'},
        'weekly': {'skipped': True},
        'monthly': {'skipped': True},
        'backup': {'skipped': True},
    }
    text = module.notify(summary, dry_run=True)['text']
    assert '前后端看板：https://wwyl.yipeng.online/liangzhu-dashboard/' in text
    assert '最新数据：2026-05-31' in text


def test_project_documents_record_formal_source_and_cloud_deploy():
    readme = (PROJECT_ROOT / 'README.md').read_text(encoding='utf-8')
    context = (PROJECT_ROOT / 'PROJECT_CONTEXT.md').read_text(encoding='utf-8')
    deploy = (PROJECT_ROOT / 'docs' / 'DEPLOYMENT.md').read_text(encoding='utf-8')
    assert '/Users/bot1/.hermes/profiles/it/scripts/liangzhu_daily_flow_bot1.py' in context
    assert 'https://wwyl.yipeng.online/liangzhu-dashboard/' in readme
    assert '/srv/liangzhu-dashboard-app' in deploy
    assert 'liangzhu-dashboard.service' in deploy
    assert 'Nginx' in deploy
