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  }