Files
lukaszraczylo ac7cae8fa7 Initial release of go-telegram
A fully-generated, strongly-typed Go client for the Telegram Bot API.

* 176 methods + 301 types generated from Bot API v10.0
* 1408 auto-generated tests (8 scenarios per method)
* Typed unions throughout — no 'any' in the public surface
* Pluggable HTTP transport and JSON codec (default goccy/go-json)
* Built-in retry middleware honouring Telegram's retry_after
* Generic dispatcher with filters and conversation handlers
* Self-verifying codegen pipeline (regen → audit → emit → run tests)
* 14 example bots covering common patterns
2026-05-09 13:09:27 +01:00

30 lines
617 B
Go

package client
import (
"testing"
"github.com/stretchr/testify/require"
)
func TestDefaultCodec_RoundTrip(t *testing.T) {
c := DefaultCodec{}
type payload struct {
Name string `json:"name"`
N int `json:"n"`
}
in := payload{Name: "x", N: 7}
data, err := c.Marshal(in)
require.NoError(t, err)
require.JSONEq(t, `{"name":"x","n":7}`, string(data))
var out payload
require.NoError(t, c.Unmarshal(data, &out))
require.Equal(t, in, out)
}
func TestDefaultCodec_UnmarshalError(t *testing.T) {
var v map[string]any
err := DefaultCodec{}.Unmarshal([]byte(`not json`), &v)
require.Error(t, err)
}