keel/extension/credentialshelper/aws/cache_test.go

60 lines
974 B
Go

package aws
import (
"sync"
"time"
"github.com/keel-hq/keel/types"
"testing"
)
func TestPutCreds(t *testing.T) {
c := NewCache(time.Second * 5)
creds := &types.Credentials{
Username: "user-1",
Password: "pass-1",
}
c.Put("reg1", creds)
stored, err := c.Get("reg1")
if err != nil {
t.Fatalf("unexpected error: %s", err)
}
if stored.Username != "user-1" {
t.Errorf("username mismatch: %s", stored.Username)
}
if stored.Password != "pass-1" {
t.Errorf("password mismatch: %s", stored.Password)
}
}
func TestExpiry(t *testing.T) {
c := &Cache{
creds: make(map[string]*item),
mu: &sync.RWMutex{},
ttl: time.Millisecond * 500,
tick: time.Millisecond * 100,
}
go c.expiryService()
creds := &types.Credentials{
Username: "user-1",
Password: "pass-1",
}
c.Put("reg1", creds)
time.Sleep(1100 * time.Millisecond)
_, err := c.Get("reg1")
if err == nil {
t.Fatalf("expected to get an error about missing record")
}
}