# -*- coding: utf-8 -*-
"""
回归测试：/session 菜单选择会话后名字解析错误。

Bug 复现：main.py 用 `selected[3:]` 切片去前缀 "📂 "，
但 Python 中 emoji "📂" 只占 1 个字符 + 1 空格 = 2 字符，
selected[3:] 会少取一个字符（如 "你好git..." → "好git..."），
导致 SESSION_DIR / f"{name}.json" 找不到文件，from_file 返回空 session，
用户看到 "0 条消息"。
"""
import pytest


def test_session_name_parsing_from_menu_selection():
    """从菜单选中项解析会话名应正确，不应丢失字符。"""
    # 复现 main.py:967 的 bug
    selected = "📂 你好git提交当前修改_0718-2120"

    # 修复后应使用 split(" ", 1)[1] 或 selected[2:]
    # 旧 bug: selected[3:] → "好git提交当前修改_0718-2120" (少了 "你")
    # 新: 应得到 "你好git提交当前修改_0718-2120"
    from abyss.main import _parse_session_name_from_selection

    name = _parse_session_name_from_selection(selected)
    assert name == "你好git提交当前修改_0718-2120"
    assert "你" in name  # 旧 bug 会丢失首字


def test_session_name_with_ascii():
    """纯 ASCII 会话名也应正确解析。"""
    selected = "📂 session_0706-0029"

    from abyss.main import _parse_session_name_from_selection
    name = _parse_session_name_from_selection(selected)

    assert name == "session_0706-0029"


def test_session_name_with_emoji_in_name():
    """会话名本身含 emoji 时也应正确（auto_name 会过滤，但防御）。"""
    selected = "📂 测试🎯会话"

    from abyss.main import _parse_session_name_from_selection
    name = _parse_session_name_from_selection(selected)

    assert name == "测试🎯会话"
