-
Notifications
You must be signed in to change notification settings - Fork 263
Expand file tree
/
Copy pathdefaultConfig_test.go
More file actions
73 lines (61 loc) · 2.32 KB
/
Copy pathdefaultConfig_test.go
File metadata and controls
73 lines (61 loc) · 2.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: MIT
package config
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestDefaultJSONConfigFor_Otel(t *testing.T) {
cfg, ok := DefaultJSONConfigFor("otel", false, false)
require.True(t, ok)
assert.JSONEq(t, defaultOtelConfig, cfg)
}
func TestDefaultJSONConfigFor_Unknown(t *testing.T) {
_, ok := DefaultJSONConfigFor("unknown", false, false)
assert.False(t, ok)
}
func TestDefaultJSONConfigFor_Empty(t *testing.T) {
_, ok := DefaultJSONConfigFor("", false, false)
assert.False(t, ok)
}
func TestDefaultJSONConfigFor_PlatformVariantsNotAddressableByName(t *testing.T) {
// The variant suffixes must not be resolvable as base config names, even
// when a platform is detected (e.g. -c default:otel_ecs on any host). The
// variants are only reachable via the platform flags on the base name.
_, ok := DefaultJSONConfigFor("otel_ecs", false, true)
assert.False(t, ok)
_, ok = DefaultJSONConfigFor("otel_k8s", true, false)
assert.False(t, ok)
}
func TestDefaultJSONConfigFor_OtelK8s(t *testing.T) {
cfg, ok := DefaultJSONConfigFor("otel", true, false)
require.True(t, ok)
assert.JSONEq(t, defaultOtelK8sConfig, cfg)
assert.Contains(t, cfg, "container_insights")
assert.NotContains(t, cfg, "host_metrics")
// On Kubernetes the role comes from the pod's AWS_ROLE_ARN (web identity on
// AKS, IRSA on EKS), so the config must not carry a role_arn of its own.
assert.NotContains(t, cfg, "role_arn")
}
func TestDefaultJSONConfigFor_OtelECS(t *testing.T) {
cfg, ok := DefaultJSONConfigFor("otel", false, true)
require.True(t, ok)
assert.JSONEq(t, defaultOtelECSConfig, cfg)
assert.NotContains(t, cfg, "host_metrics")
assert.NotContains(t, cfg, "container_insights")
}
func TestDefaultJSONConfigFor_KubernetesTakesPrecedenceOverECS(t *testing.T) {
cfg, ok := DefaultJSONConfigFor("otel", true, true)
require.True(t, ok)
assert.JSONEq(t, defaultOtelK8sConfig, cfg)
}
func TestDefaultJSONConfigFor_VMFallsBackToBase(t *testing.T) {
cfg, ok := DefaultJSONConfigFor("otel", false, false)
require.True(t, ok)
assert.JSONEq(t, defaultOtelConfig, cfg)
}
func TestDefaultJSONConfigFor_UnknownWithPlatform(t *testing.T) {
_, ok := DefaultJSONConfigFor("unknown", true, false)
assert.False(t, ok)
}