github.com/tommi2day/gomodules@v1.13.2-0.20240423190010-b7d55d252a27/hmlib/roomlist_test.go (about) 1 package hmlib 2 3 import ( 4 "testing" 5 6 "github.com/jarcoal/httpmock" 7 "github.com/stretchr/testify/assert" 8 "github.com/tommi2day/gomodules/test" 9 ) 10 11 func TestRoomlist(t *testing.T) { 12 test.Testinit(t) 13 httpmock.ActivateNonDefault(httpClient.GetClient()) 14 response := RoomListTest 15 responder := httpmock.NewStringResponder(200, response) 16 fakeURL := hmURL + RoomListEndpoint 17 httpmock.RegisterResponder("GET", fakeURL, responder) 18 defer httpmock.DeactivateAndReset() 19 20 t.Run("RoomListResponse", func(t *testing.T) { 21 actual, err := GetRoomList() 22 t.Logf(actual.String()) 23 assert.NoErrorf(t, err, "GetRoomList should not return an error:%s", err) 24 assert.Equal(t, 2, len(actual.Rooms), "GetRoomList should return 2 entries") 25 idl := map[string]string{} 26 for _, r := range actual.Rooms { 27 rn := r.Name 28 cl := r.Channels 29 for _, c := range cl { 30 idl[c.IseID] = rn 31 } 32 } 33 n, ok := idl["3076"] 34 assert.True(t, ok, "GetRoomList should contain channel 3076") 35 assert.Equal(t, "Bad", n, "GetRoomList should contain channel 3076 in Bad") 36 }) 37 }