proxycfg: Add a test to show the bug

When a token is not provided at registration, the agent token is not being used.
This commit is contained in:
Daniel Nephin 2021-08-10 19:15:10 -04:00
parent 3bae53a989
commit b313f495b8
1 changed files with 45 additions and 0 deletions

View File

@ -557,3 +557,48 @@ func testGenCacheKey(req cache.Request) string {
info := req.CacheInfo() info := req.CacheInfo()
return path.Join(info.Key, info.Datacenter) return path.Join(info.Key, info.Datacenter)
} }
func TestManager_SyncState_DefaultToken(t *testing.T) {
types := NewTestCacheTypes(t)
c := TestCacheWithTypes(t, types)
logger := testutil.Logger(t)
tokens := new(token.Store)
tokens.UpdateUserToken("default-token", token.TokenSourceConfig)
state := local.NewState(local.Config{}, logger, tokens)
state.TriggerSyncChanges = func() {}
m, err := NewManager(ManagerConfig{
Cache: c,
Health: &health.Client{Cache: c, CacheName: cachetype.HealthServicesName},
State: state,
// TODO: Tokens: tokens,
Source: &structs.QuerySource{Datacenter: "dc1"},
Logger: logger,
})
require.NoError(t, err)
defer m.Close()
srv := &structs.NodeService{
Kind: structs.ServiceKindConnectProxy,
ID: "web-sidecar-proxy",
Service: "web-sidecar-proxy",
Port: 9999,
Meta: map[string]string{},
Proxy: structs.ConnectProxyConfig{
DestinationServiceID: "web",
DestinationServiceName: "web",
LocalServiceAddress: "127.0.0.1",
LocalServicePort: 8080,
Config: map[string]interface{}{
"foo": "bar",
},
},
}
err = state.AddServiceWithChecks(srv, nil, "")
require.NoError(t, err)
m.syncState()
require.Equal(t, "default-token", m.proxies[srv.CompoundServiceID()].serviceInstance.token)
}