MCPcopy Index your code
hub / github.com/cortexproject/cortex / TestUserExternalLabels

Function TestUserExternalLabels

pkg/ruler/external_labels_test.go:10–75  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

8)
9
10func TestUserExternalLabels(t *testing.T) {
11 limits := ruleLimits{}
12 e := newUserExternalLabels(labels.FromStrings("from", "cortex"), &limits)
13
14 tests := []struct {
15 name string
16 removeBeforeTest bool
17 exists bool
18 userExternalLabels labels.Labels
19 expectedExternalLabels labels.Labels
20 }{
21 {
22 name: "global labels only",
23 removeBeforeTest: false,
24 exists: false,
25 userExternalLabels: labels.EmptyLabels(),
26 expectedExternalLabels: labels.FromStrings("from", "cortex"),
27 },
28 {
29 name: "local labels without overriding",
30 removeBeforeTest: true,
31 exists: false,
32 userExternalLabels: labels.FromStrings("tag", "local"),
33 expectedExternalLabels: labels.FromStrings("from", "cortex", "tag", "local"),
34 },
35 {
36 name: "local labels that override globals",
37 removeBeforeTest: false,
38 exists: true,
39 userExternalLabels: labels.FromStrings("from", "cloud", "tag", "local"),
40 expectedExternalLabels: labels.FromStrings("from", "cloud", "tag", "local"),
41 },
42 {
43 name: "utf8",
44 removeBeforeTest: true,
45 exists: false,
46 userExternalLabels: labels.FromStrings("test.utf8.metric", "😄"),
47 expectedExternalLabels: labels.FromStrings("from", "cortex", "test.utf8.metric", "😄"),
48 },
49 }
50
51 const userID = "test-user"
52 for _, data := range tests {
53 t.Run(data.name, func(t *testing.T) {
54 if data.removeBeforeTest {
55 e.remove(userID)
56 }
57 _, exists := e.get(userID)
58 require.Equal(t, data.exists, exists)
59
60 limits.externalLabels = data.userExternalLabels
61 lset, ok := e.update(userID)
62 require.True(t, ok)
63 require.Equal(t, data.expectedExternalLabels, lset)
64 lset1, ok := e.update(userID)
65 require.False(t, ok) // Not updated.
66 require.Equal(t, data.expectedExternalLabels, lset1)
67 })

Callers

nothing calls this directly

Calls 7

newUserExternalLabelsFunction · 0.85
removeMethod · 0.80
updateMethod · 0.80
RunMethod · 0.65
EqualMethod · 0.65
getMethod · 0.45
cleanupMethod · 0.45

Tested by

no test coverage detected