@@ -1639,3 +1639,48 @@ def test_the_panel_survives_a_noisy_line(self, bridge):
16391639 })
16401640
16411641 assert [w ["used_percent" ] for w in server ._claude_windows (raw )] == [20.0 , 25.0 ]
1642+
1643+
1644+ class TestClaudeCanUseItsOwnSignIn :
1645+ """登録できるものと、サインインでできることが違う。
1646+
1647+ `claude setup-token` の長期トークンは推論だけに絞られていて、**枠のパネルを
1648+ 出せない**(実測: `/usage` が会話を始めずに終わった締めの集計を返す)。
1649+ 枠まで欲しい人が、コンテナの中のサインインを選べる必要がある。
1650+ """
1651+
1652+ def test_nothing_registered_is_not_an_error (self , bridge , monkeypatch ):
1653+ server = bridge (CHIEZO_BRIDGE_CLI = "claude" )
1654+ monkeypatch .setattr (server , "stored_credential" , lambda : "" )
1655+
1656+ assert server .apply_credential () == ""
1657+
1658+ def test_a_registered_token_still_wins (self , bridge , monkeypatch ):
1659+ server = bridge (CHIEZO_BRIDGE_CLI = "claude" )
1660+ monkeypatch .setattr (server , "stored_credential" , lambda : "sk-ant-oat01-test" )
1661+ monkeypatch .delenv ("CLAUDE_CODE_OAUTH_TOKEN" , raising = False )
1662+
1663+ assert server .apply_credential () == ""
1664+ assert server .os .environ ["CLAUDE_CODE_OAUTH_TOKEN" ] == "sk-ant-oat01-test"
1665+
1666+ def test_codex_still_needs_something_registered (self , bridge , monkeypatch ):
1667+ """あちらは認証ファイルを置く方式で、置くものが無ければ動かない。"""
1668+ server = bridge (CHIEZO_BRIDGE_CLI = "codex" )
1669+ monkeypatch .setattr (server , "stored_credential" , lambda : "" )
1670+
1671+ assert "未登録" in server .apply_credential ()
1672+
1673+ def test_a_wrap_up_says_what_to_do (self , bridge ):
1674+ """0 が並んだ集計を見せられても、壊れているのか頼み方が違うのか読めない。"""
1675+ server = bridge (CHIEZO_BRIDGE_CLI = "claude" )
1676+ raw = json .dumps ({"result" : (
1677+ "Total cost: $0.0000\n Total duration (API): 0s\n "
1678+ "Usage: 0 input, 0 output, 0 cache read, 0 cache write" )})
1679+
1680+ assert "サインイン" in server ._usage_reason (raw )
1681+
1682+ def test_a_real_panel_is_not_mistaken_for_one (self , bridge ):
1683+ server = bridge (CHIEZO_BRIDGE_CLI = "claude" )
1684+ raw = json .dumps ({"result" : "Current session: 20% used" })
1685+
1686+ assert server ._usage_reason (raw ) == "Current session: 20% used"
0 commit comments