Skip to content

Commit d5555f6

Browse files
committed
Add test for multiple replicas
1 parent 9124b00 commit d5555f6

File tree

5 files changed

+35
-16
lines changed

5 files changed

+35
-16
lines changed

coderd/coderd.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ func New(options *Options) *API {
124124
}
125125
if options.DERPServer == nil {
126126
options.DERPServer = derp.NewServer(key.NewNode(), tailnet.Logger(options.Logger))
127+
options.DERPServer.SetMeshKey("todo-kyle-change-this")
127128
}
128129
if options.Auditor == nil {
129130
options.Auditor = audit.NewNop()

enterprise/coderd/coderdenttest/coderdenttest.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,12 @@ func NewWithAPI(t *testing.T, options *Options) (*codersdk.Client, io.Closer, *c
6363
}
6464
srv, cancelFunc, oop := coderdtest.NewOptions(t, options.Options)
6565
coderAPI, err := coderd.New(context.Background(), &coderd.Options{
66-
RBAC: true,
67-
AuditLogging: options.AuditLogging,
68-
BrowserOnly: options.BrowserOnly,
69-
SCIMAPIKey: options.SCIMAPIKey,
70-
DERPServerRelayAddress: oop.AccessURL.String(),
66+
RBAC: true,
67+
AuditLogging: options.AuditLogging,
68+
BrowserOnly: options.BrowserOnly,
69+
SCIMAPIKey: options.SCIMAPIKey,
70+
// TODO: Kyle change this before merge!
71+
DERPServerRelayAddress: oop.AccessURL.String() + "/derp",
7172
DERPServerRegionID: 1,
7273
HighAvailability: true,
7374
ReplicaID: uuid.New(),

enterprise/coderd/license/license.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,9 +153,6 @@ func Entitlements(
153153
case codersdk.EntitlementNotEntitled:
154154
entitlements.Warnings = append(entitlements.Warnings,
155155
fmt.Sprintf("%s is enabled but your license is not entitled to this feature.", niceName))
156-
// Disable the feature and add a warning...
157-
feature.Enabled = false
158-
entitlements.Features[featureName] = feature
159156
case codersdk.EntitlementGracePeriod:
160157
entitlements.Warnings = append(entitlements.Warnings,
161158
fmt.Sprintf("%s is enabled but your license for this feature is expired.", niceName))
@@ -164,6 +161,14 @@ func Entitlements(
164161
}
165162
}
166163

164+
for _, featureName := range codersdk.FeatureNames {
165+
feature := entitlements.Features[featureName]
166+
if feature.Entitlement == codersdk.EntitlementNotEntitled {
167+
feature.Enabled = false
168+
entitlements.Features[featureName] = feature
169+
}
170+
}
171+
167172
return entitlements, nil
168173
}
169174

enterprise/coderd/license/license_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ func TestEntitlements(t *testing.T) {
3131
t.Run("Defaults", func(t *testing.T) {
3232
t.Parallel()
3333
db := databasefake.New()
34-
entitlements, err := license.Entitlements(context.Background(), db, slog.Logger{}, coderdenttest.Keys, map[string]bool{})
34+
entitlements, err := license.Entitlements(context.Background(), db, slog.Logger{}, coderdenttest.Keys, all)
3535
require.NoError(t, err)
3636
require.False(t, entitlements.HasLicense)
3737
require.False(t, entitlements.Trial)

enterprise/coderd/replicas_test.go

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,16 @@ package coderd_test
22

33
import (
44
"context"
5-
"fmt"
65
"testing"
6+
"time"
77

88
"github.com/stretchr/testify/require"
99

10+
"cdr.dev/slog"
11+
"cdr.dev/slog/sloggers/slogtest"
12+
1013
"github.com/coder/coder/coderd/coderdtest"
1114
"github.com/coder/coder/coderd/database/dbtestutil"
12-
"github.com/coder/coder/codersdk"
1315
"github.com/coder/coder/enterprise/coderd/coderdenttest"
1416
)
1517

@@ -18,11 +20,15 @@ func TestReplicas(t *testing.T) {
1820
db, pubsub := dbtestutil.NewDB(t)
1921
firstClient := coderdenttest.New(t, &coderdenttest.Options{
2022
Options: &coderdtest.Options{
21-
Database: db,
22-
Pubsub: pubsub,
23+
IncludeProvisionerDaemon: true,
24+
Database: db,
25+
Pubsub: pubsub,
2326
},
2427
})
25-
_ = coderdtest.CreateFirstUser(t, firstClient)
28+
firstUser := coderdtest.CreateFirstUser(t, firstClient)
29+
coderdenttest.AddLicense(t, firstClient, coderdenttest.LicenseOptions{
30+
HighAvailability: true,
31+
})
2632

2733
secondClient := coderdenttest.New(t, &coderdenttest.Options{
2834
Options: &coderdtest.Options{
@@ -32,7 +38,13 @@ func TestReplicas(t *testing.T) {
3238
})
3339
secondClient.SessionToken = firstClient.SessionToken
3440

35-
user, err := secondClient.User(context.Background(), codersdk.Me)
41+
agentID := setupWorkspaceAgent(t, firstClient, firstUser)
42+
conn, err := secondClient.DialWorkspaceAgentTailnet(context.Background(), slogtest.Make(t, nil).Leveled(slog.LevelDebug), agentID)
3643
require.NoError(t, err)
37-
fmt.Printf("%+v\n", user)
44+
require.Eventually(t, func() bool {
45+
_, err = conn.Ping()
46+
return err == nil
47+
}, 10*time.Second, 250*time.Millisecond)
48+
49+
_ = conn.Close()
3850
}

0 commit comments

Comments
 (0)