...
1 package info_test
2
3 import (
4 "testing"
5
6 "github.com/stretchr/testify/assert"
7 "sigs.k8s.io/controller-runtime/pkg/client/fake"
8
9 "edge-infra.dev/pkg/edge/info"
10 "edge-infra.dev/test/f2"
11 )
12
13 func TestBootstrapSecret(t *testing.T) {
14 feature := f2.NewFeature("Test Bootstrap Secret").
15 Test("BuildBootstrapSecret", func(ctx f2.Context, t *testing.T) f2.Context {
16 secret := info.BuildBootstrapSecret("token")
17 assert.Equal(t, secret.Namespace, info.EdgeBootstrapping)
18 assert.Equal(t, secret.Name, info.EdgeConfigMapName)
19 assert.Equal(t, len(secret.Data), 1)
20 assert.Equal(t, secret.Data[info.TotpSecret], []byte("token"))
21 return ctx
22 }).
23 Test("SecretFromClient", func(ctx f2.Context, t *testing.T) f2.Context {
24 cl := fake.NewClientBuilder().Build()
25
26 expected := "token"
27
28 token, err := info.TokenFromClient(ctx, cl)
29 assert.Error(t, err)
30 assert.Empty(t, token)
31
32 secret := info.BuildBootstrapSecret(expected)
33 assert.NoError(t, cl.Create(ctx, secret))
34 token, err = info.TokenFromClient(ctx, cl)
35 assert.NoError(t, err)
36 assert.Equal(t, expected, token)
37
38 updated := info.BuildBootstrapSecret(expected)
39 delete(updated.Data, info.TotpSecret)
40 assert.NoError(t, cl.Update(ctx, updated))
41 token, err = info.TokenFromClient(ctx, cl)
42 assert.Error(t, err)
43 assert.Empty(t, token)
44 return ctx
45 }).Feature()
46 f.Test(t, feature)
47 }
48
View as plain text