Skip to content

Commit f492d82

Browse files
committed
add some tests
1 parent 3544c33 commit f492d82

File tree

1 file changed

+70
-2
lines changed

1 file changed

+70
-2
lines changed

plugins/outputs/influxdb_v2/http_test.go

+70-2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"github.com/stretchr/testify/require"
1313

1414
"github.com/influxdata/telegraf"
15+
"github.com/influxdata/telegraf/config"
1516
influxdb "github.com/influxdata/telegraf/plugins/outputs/influxdb_v2"
1617
"github.com/influxdata/telegraf/testutil"
1718
)
@@ -40,6 +41,13 @@ func TestNewHTTPClient(t *testing.T) {
4041
URL: genURL("unix://var/run/influxd.sock"),
4142
},
4243
},
44+
{
45+
cfg: &influxdb.HTTPConfig{
46+
URL: genURL("unix://var/run/influxd.sock"),
47+
PingTimeout: config.Duration(15 * time.Second),
48+
ReadIdleTimeout: config.Duration(30 * time.Second),
49+
},
50+
},
4351
}
4452

4553
for i := range tests {
@@ -56,6 +64,66 @@ func TestNewHTTPClient(t *testing.T) {
5664
}
5765
}
5866

67+
func TestWrite(t *testing.T) {
68+
ts := httptest.NewServer(
69+
http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
70+
switch r.URL.Path {
71+
case "/api/v2/write":
72+
err := r.ParseForm()
73+
require.NoError(t, err)
74+
require.Equal(t, r.Form["bucket"], []string{"foobar"})
75+
76+
body, err := io.ReadAll(r.Body)
77+
require.NoError(t, err)
78+
require.Contains(t, string(body), "cpu value=42.123")
79+
80+
w.WriteHeader(http.StatusNoContent)
81+
return
82+
default:
83+
w.WriteHeader(http.StatusNotFound)
84+
return
85+
}
86+
}),
87+
)
88+
defer ts.Close()
89+
90+
addr := &url.URL{
91+
Scheme: "http",
92+
Host: ts.Listener.Addr().String(),
93+
}
94+
95+
cfg := &influxdb.HTTPConfig{
96+
URL: addr,
97+
Bucket: "telegraf",
98+
BucketTag: "bucket",
99+
ExcludeBucketTag: true,
100+
PingTimeout: config.Duration(15 * time.Second),
101+
ReadIdleTimeout: config.Duration(30 * time.Second),
102+
}
103+
104+
client, err := influxdb.NewHTTPClient(cfg)
105+
require.NoError(t, err)
106+
107+
metrics := []telegraf.Metric{
108+
testutil.MustMetric(
109+
"cpu",
110+
map[string]string{
111+
"bucket": "foobar",
112+
},
113+
map[string]interface{}{
114+
"value": 42.123,
115+
},
116+
time.Unix(0, 0),
117+
),
118+
}
119+
120+
ctx := context.Background()
121+
err = client.Write(ctx, metrics)
122+
require.NoError(t, err)
123+
err = client.Write(ctx, metrics)
124+
require.NoError(t, err)
125+
}
126+
59127
func TestWriteBucketTagWorksOnRetry(t *testing.T) {
60128
ts := httptest.NewServer(
61129
http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
@@ -84,14 +152,14 @@ func TestWriteBucketTagWorksOnRetry(t *testing.T) {
84152
Host: ts.Listener.Addr().String(),
85153
}
86154

87-
config := &influxdb.HTTPConfig{
155+
cfg := &influxdb.HTTPConfig{
88156
URL: addr,
89157
Bucket: "telegraf",
90158
BucketTag: "bucket",
91159
ExcludeBucketTag: true,
92160
}
93161

94-
client, err := influxdb.NewHTTPClient(config)
162+
client, err := influxdb.NewHTTPClient(cfg)
95163
require.NoError(t, err)
96164

97165
metrics := []telegraf.Metric{

0 commit comments

Comments
 (0)