forked from influxdata/influxdb
-
Notifications
You must be signed in to change notification settings - Fork 0
/
onboarding_test.go
59 lines (50 loc) · 1.4 KB
/
onboarding_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package http
import (
"context"
"net/http/httptest"
"testing"
"github.com/influxdata/influxdb/mock"
"go.uber.org/zap"
platform "github.com/influxdata/influxdb"
"github.com/influxdata/influxdb/inmem"
platformtesting "github.com/influxdata/influxdb/testing"
)
// NewMockSetupBackend returns a SetupBackend with mock services.
func NewMockSetupBackend() *SetupBackend {
return &SetupBackend{
Logger: zap.NewNop().With(zap.String("handler", "scraper")),
OnboardingService: mock.NewOnboardingService(),
}
}
func initOnboardingService(f platformtesting.OnboardingFields, t *testing.T) (platform.OnboardingService, func()) {
t.Helper()
svc := inmem.NewService()
svc.IDGenerator = f.IDGenerator
svc.TokenGenerator = f.TokenGenerator
ctx := context.Background()
if err := svc.PutOnboardingStatus(ctx, !f.IsOnboarding); err != nil {
t.Fatalf("failed to set new onboarding finished: %v", err)
}
setupBackend := NewMockSetupBackend()
setupBackend.OnboardingService = svc
handler := NewSetupHandler(setupBackend)
server := httptest.NewServer(handler)
client := struct {
*SetupService
*Service
platform.PasswordsService
}{
SetupService: &SetupService{
Addr: server.URL,
},
Service: &Service{
Addr: server.URL,
},
PasswordsService: svc,
}
done := server.Close
return client, done
}
func TestOnboardingService(t *testing.T) {
platformtesting.Generate(initOnboardingService, t)
}