|
6 | 6 | "github.com/snapp-incubator/soteria/internal/authenticator"
|
7 | 7 | "github.com/snapp-incubator/soteria/internal/config"
|
8 | 8 | "github.com/snapp-incubator/soteria/internal/topics"
|
| 9 | + "github.com/snapp-incubator/soteria/pkg/acl" |
| 10 | + "github.com/snapp-incubator/soteria/pkg/validator" |
9 | 11 | "github.com/stretchr/testify/require"
|
10 | 12 | "go.opentelemetry.io/otel/trace/noop"
|
11 | 13 | "go.uber.org/zap"
|
@@ -67,6 +69,53 @@ func TestBuilderInvalidAuthenticator(t *testing.T) {
|
67 | 69 | require.ErrorIs(err, authenticator.ErrInvalidAuthenticator)
|
68 | 70 | }
|
69 | 71 |
|
| 72 | +func TestBuilderAutoAuthenticator(t *testing.T) { |
| 73 | + t.Parallel() |
| 74 | + |
| 75 | + require := require.New(t) |
| 76 | + |
| 77 | + b := authenticator.Builder{ |
| 78 | + Tracer: noop.NewTracerProvider().Tracer(""), |
| 79 | + Vendors: []config.Vendor{ |
| 80 | + { |
| 81 | + Jwt: config.JWT{ |
| 82 | + IssName: "", |
| 83 | + SubName: "", |
| 84 | + SigningMethod: "", |
| 85 | + }, |
| 86 | + Company: "auto", |
| 87 | + Type: "auto", |
| 88 | + AllowedAccessTypes: []string{"pub"}, |
| 89 | + Topics: nil, |
| 90 | + HashIDMap: nil, |
| 91 | + IssEntityMap: nil, |
| 92 | + IssPeerMap: nil, |
| 93 | + Keys: nil, |
| 94 | + }, |
| 95 | + }, |
| 96 | + Logger: zap.NewNop(), |
| 97 | + ValidatorConfig: config.Validator{ |
| 98 | + URL: "https://httpbin.org", |
| 99 | + Timeout: 0, |
| 100 | + }, |
| 101 | + } |
| 102 | + |
| 103 | + vendors, err := b.Authenticators() |
| 104 | + require.NoError(err) |
| 105 | + require.Len(vendors, 1) |
| 106 | + require.Contains(vendors, "auto") |
| 107 | + |
| 108 | + a := vendors["auto"] |
| 109 | + require.Equal("auto", a.GetCompany()) |
| 110 | + require.IsType(new(authenticator.AutoAuthenticator), a) |
| 111 | + require.True(a.ValidateAccessType(acl.Pub)) |
| 112 | + require.False(a.ValidateAccessType(acl.Sub)) |
| 113 | + |
| 114 | + aa, ok := a.(*authenticator.AutoAuthenticator) |
| 115 | + require.True(ok) |
| 116 | + require.Equal(validator.New(b.ValidatorConfig.URL, b.ValidatorConfig.Timeout), aa.Validator) |
| 117 | +} |
| 118 | + |
70 | 119 | func TestBuilderInternalAuthenticator(t *testing.T) {
|
71 | 120 | t.Parallel()
|
72 | 121 |
|
|
0 commit comments