Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aos
GitHub Repository: aos/grafana-agent
Path: blob/main/component/discovery/gce/gce_test.go
4095 views
1
package gce
2
3
import (
4
"testing"
5
"time"
6
7
"github.com/grafana/agent/pkg/river"
8
"github.com/stretchr/testify/require"
9
)
10
11
func TestUnmarshalRiver(t *testing.T) {
12
var riverConfig = `
13
project = "project"
14
zone = "zone"
15
filter = "filter"
16
refresh_interval = "60s"
17
port = 80
18
tag_separator = ","
19
`
20
21
var args Arguments
22
err := river.Unmarshal([]byte(riverConfig), &args)
23
require.NoError(t, err)
24
}
25
26
func TestUnmarshalRiverInvalid(t *testing.T) {
27
var riverConfig = `
28
filter = "filter"
29
refresh_interval = "60s"
30
port = 80
31
tag_separator = ","
32
`
33
34
var args Arguments
35
err := river.Unmarshal([]byte(riverConfig), &args)
36
37
// Validate that project and zone are required.
38
require.Error(t, err)
39
}
40
41
func TestConvert(t *testing.T) {
42
args := Arguments{
43
Project: "project",
44
Zone: "zone",
45
Filter: "filter",
46
RefreshInterval: 10 * time.Second,
47
Port: 81,
48
TagSeparator: ",",
49
}
50
51
sdConfig := args.Convert()
52
require.Equal(t, args.Project, sdConfig.Project)
53
require.Equal(t, args.Zone, sdConfig.Zone)
54
require.Equal(t, args.Filter, sdConfig.Filter)
55
require.Equal(t, args.RefreshInterval, time.Duration(sdConfig.RefreshInterval))
56
require.Equal(t, args.Port, sdConfig.Port)
57
require.Equal(t, args.TagSeparator, sdConfig.TagSeparator)
58
}
59
60