waitForCapability polls Session.Capabilities() until predicate matches or timeout. Returns the last observed capabilities. Avoids time.Sleep in tests.
(t *testing.T, session *Session, predicate func(SessionCapabilities) bool, timeout time.Duration)
| 914 | // waitForCapability polls Session.Capabilities() until predicate matches or timeout. |
| 915 | // Returns the last observed capabilities. Avoids time.Sleep in tests. |
| 916 | func waitForCapability(t *testing.T, session *Session, predicate func(SessionCapabilities) bool, timeout time.Duration) SessionCapabilities { |
| 917 | t.Helper() |
| 918 | deadline := time.Now().Add(timeout) |
| 919 | var last SessionCapabilities |
| 920 | for { |
| 921 | last = session.Capabilities() |
| 922 | if predicate(last) { |
| 923 | return last |
| 924 | } |
| 925 | if time.Now().After(deadline) { |
| 926 | return last |
| 927 | } |
| 928 | time.Sleep(5 * time.Millisecond) |
| 929 | } |
| 930 | } |
| 931 | |
| 932 | func TestSession_ElicitationCapabilityGating(t *testing.T) { |
| 933 | t.Run("elicitation errors when capability is missing", func(t *testing.T) { |
no test coverage detected
searching dependent graphs…