package core import ( "testing" ) // TestChannelsDevicePollBehavior 是 device-poll 流的行为对齐测试。 // // 决策表逐行搬自参考实现 pollMinimaxDeviceToken(minimax-oauth.ts), // 上游用假服务器模拟,逐次响应由测试控制。断言的是**行为**(会话状态推进), // 不是实现细节。决策表本体在 deviceHarness.runDecisionTable(与变异测试共用)。 func TestChannelsDevicePollBehavior(t *testing.T) { h := newDeviceHarness(t, mustChannelsSrc(t)) // begin 直查:user_code 透传、授权 URL、verifier 不回显 j := h.begin() sess := j["session"].(map[string]interface{}) if sess["user_code"] != "ABCD-EFGH" { t.Fatalf("begin 应透传 user_code, 实得 %v", sess["user_code"]) } if j["url"] != "https://example/activate" { t.Fatalf("begin 应给授权 URL, 实得 %v", j["url"]) } if _, has := j["device_verifier"]; has { t.Fatal("verifier 绝不能回显") } // 决策表全过 if !h.runDecisionTable() { t.Fatal("device-poll 决策表未全过(见 runDecisionTable 内的行号)") } } // mustChannelsSrc 读 bundled channels 源码。 func mustChannelsSrc(t *testing.T) string { t.Helper() src, err := readBundledChannels(t) if err != nil { t.Fatal(err) } return src }