]> git.giacomolli.uk - onechat/blobdiff - botapi_test.go
Send the replies to Telegram with their formats
[onechat] / botapi_test.go
index e1827471b425478352ce0200897b84f22e026dc7..9c4db5461c2d1434be43d0577ff0753b012f498b 100644 (file)
@@ -48,7 +48,7 @@ func TestGetUpdatesAsksForMessagesFromTheOffset(t *testing.T) {
 
 func TestSendMessageSendsPlainText(t *testing.T) {
        server := newFakeBot(t)
 
 func TestSendMessageSendsPlainText(t *testing.T) {
        server := newFakeBot(t)
-       err := newBotAPI(server.URL, testBotToken).SendMessage(t.Context(), testOwner, "*not bold*")
+       err := newBotAPI(server.URL, testBotToken).SendMessage(t.Context(), testOwner, "*not bold*", nil)
        require.NoError(t, err)
 
        require.Equal(t, map[string]any{
        require.NoError(t, err)
 
        require.Equal(t, map[string]any{
@@ -57,6 +57,28 @@ func TestSendMessageSendsPlainText(t *testing.T) {
        }, server.Calls()[0].params)
 }
 
        }, server.Calls()[0].params)
 }
 
+func TestSendMessageSendsTheEntities(t *testing.T) {
+       server := newFakeBot(t)
+       err := newBotAPI(server.URL, testBotToken).SendMessage(t.Context(), testOwner, "a link", []botEntity{
+               {
+                       Type:   "text_link",
+                       Offset: 2,
+                       Length: 4,
+                       URL:    "https://example.com",
+               },
+       })
+       require.NoError(t, err)
+
+       require.Equal(t, []any{
+               map[string]any{
+                       "type":   "text_link",
+                       "offset": float64(2),
+                       "length": float64(4),
+                       "url":    "https://example.com",
+               },
+       }, server.Calls()[0].params["entities"])
+}
+
 func TestSendMessageTimesOutOnAStalledConnection(t *testing.T) {
        server := newFakeBot(t)
        server.stall = func(call fakeBotCall) bool {
 func TestSendMessageTimesOutOnAStalledConnection(t *testing.T) {
        server := newFakeBot(t)
        server.stall = func(call fakeBotCall) bool {
@@ -66,7 +88,7 @@ func TestSendMessageTimesOutOnAStalledConnection(t *testing.T) {
        api := newBotAPI(server.URL, testBotToken)
        api.sendTimeout = 50 * time.Millisecond
        start := time.Now()
        api := newBotAPI(server.URL, testBotToken)
        api.sendTimeout = 50 * time.Millisecond
        start := time.Now()
-       err := api.SendMessage(t.Context(), testOwner, "hi")
+       err := api.SendMessage(t.Context(), testOwner, "hi", nil)
        require.ErrorIs(t, err, errBotNetwork)
        require.Less(t, time.Since(start), 5*time.Second)
        require.NotContains(t, err.Error(), testBotToken)
        require.ErrorIs(t, err, errBotNetwork)
        require.Less(t, time.Since(start), 5*time.Second)
        require.NotContains(t, err.Error(), testBotToken)
@@ -79,7 +101,7 @@ func TestSendMessageTimesOutOnAStalledConnection(t *testing.T) {
        ctx, cancel := context.WithCancel(t.Context())
        time.AfterFunc(50*time.Millisecond, cancel)
        start = time.Now()
        ctx, cancel := context.WithCancel(t.Context())
        time.AfterFunc(50*time.Millisecond, cancel)
        start = time.Now()
-       err = api.SendMessage(ctx, testOwner, "hi")
+       err = api.SendMessage(ctx, testOwner, "hi", nil)
        require.Error(t, err)
        require.Less(t, time.Since(start), 5*time.Second)
 }
        require.Error(t, err)
        require.Less(t, time.Since(start), 5*time.Second)
 }
@@ -148,7 +170,7 @@ func TestBotErrorsDoNotHoldTheToken(t *testing.T) {
                        }))
                        t.Cleanup(server.Close)
 
                        }))
                        t.Cleanup(server.Close)
 
-                       err := newBotAPI(server.URL, testBotToken).SendMessage(t.Context(), testOwner, "hi")
+                       err := newBotAPI(server.URL, testBotToken).SendMessage(t.Context(), testOwner, "hi", nil)
                        require.ErrorContains(t, err, tc.errorText)
                        require.NotContains(t, err.Error(), testBotToken)
                        require.NotContains(t, err.Error(), server.URL)
                        require.ErrorContains(t, err, tc.errorText)
                        require.NotContains(t, err.Error(), testBotToken)
                        require.NotContains(t, err.Error(), server.URL)