MCPcopy Create free account
hub / github.com/cortexproject/cortex / TestUserIndexScanner_ScanUsers

Function TestUserIndexScanner_ScanUsers

pkg/util/users/scanner_test.go:98–212  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

96}
97
98func TestUserIndexScanner_ScanUsers(t *testing.T) {
99 t.Parallel()
100
101 ctx := context.Background()
102 logger := log.NewNopLogger()
103
104 tests := map[string]struct {
105 bucketSetup func(*bucket.ClientMock)
106 maxStalePeriod time.Duration
107 expectedActive []string
108 expectedDeleting []string
109 expectedDeleted []string
110 expectErr bool
111 }{
112 "successful scan from index": {
113 bucketSetup: func(b *bucket.ClientMock) {
114 index := &UserIndex{
115 Version: userIndexVersion,
116 ActiveUsers: []string{"user-1", "user-2"},
117 DeletingUsers: []string{"user-3"},
118 DeletedUsers: []string{"user-4"},
119 UpdatedAt: time.Now().Unix(),
120 }
121 indexBytes, err := json.Marshal(index)
122 require.NoError(t, err)
123
124 var buf bytes.Buffer
125 gw := gzip.NewWriter(&buf)
126 _, err = gw.Write(indexBytes)
127 require.NoError(t, err)
128 require.NoError(t, gw.Close())
129
130 b.MockGet(UserIndexCompressedFilename, buf.String(), nil)
131 },
132 maxStalePeriod: 1 * time.Hour,
133 expectedActive: []string{"user-1", "user-2"},
134 expectedDeleting: []string{"user-3"},
135 expectedDeleted: []string{"user-4"},
136 expectErr: false,
137 },
138 "stale index falls back to base scanner": {
139 bucketSetup: func(b *bucket.ClientMock) {
140 // Return stale index
141 index := &UserIndex{
142 Version: userIndexVersion,
143 ActiveUsers: []string{"user-1"},
144 DeletingUsers: []string{},
145 DeletedUsers: []string{},
146 UpdatedAt: time.Now().Add(-2 * time.Hour).Unix(),
147 }
148 indexBytes, err := json.Marshal(index)
149 require.NoError(t, err)
150
151 var buf bytes.Buffer
152 gw := gzip.NewWriter(&buf)
153 _, err = gw.Write(indexBytes)
154 require.NoError(t, err)
155 require.NoError(t, gw.Close())

Callers

nothing calls this directly

Calls 14

GetLocalDeletionMarkPathFunction · 0.85
newUserIndexScannerFunction · 0.85
MockGetMethod · 0.80
MockIterMethod · 0.80
MockExistsMethod · 0.80
CloseMethod · 0.65
StringMethod · 0.65
RunMethod · 0.65
ScanUsersMethod · 0.65
MarshalMethod · 0.45
WriteMethod · 0.45

Tested by

no test coverage detected