-
Notifications
You must be signed in to change notification settings - Fork 0
/
firebase_mocks.go
61 lines (49 loc) · 1.93 KB
/
firebase_mocks.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
60
61
package firebasetools
import (
"context"
"net/http"
"cloud.google.com/go/firestore"
"firebase.google.com/go/auth"
"firebase.google.com/go/messaging"
)
// MockFirebaseApp is used to mock the behavior of a Firebase app for testing
type MockFirebaseApp struct {
MockAuthErr error
MockAuthClient *auth.Client
MockRefreshErr error
MockFirestore *firestore.Client
MockFirestoreErr error
MockMessaging *messaging.Client
MockMessagingErr error
}
// Auth returns a mock client or error, as set on the struct
func (fa *MockFirebaseApp) Auth(_ context.Context) (*auth.Client, error) {
return fa.MockAuthClient, fa.MockAuthErr
}
// RevokeRefreshTokens returns an error on attempted refresh
func (fa *MockFirebaseApp) RevokeRefreshTokens(ctx context.Context, uid string) error {
return fa.MockRefreshErr
}
// Firestore returns a mock Firestore or error, as set on the struct
func (fa *MockFirebaseApp) Firestore(ctx context.Context) (*firestore.Client, error) {
return fa.MockFirestore, fa.MockFirestoreErr
}
// Messaging returns a mock Firebase Cloud Messaging client or error, as set on the struct
func (fa *MockFirebaseApp) Messaging(ctx context.Context) (*messaging.Client, error) {
return fa.MockMessaging, fa.MockMessagingErr
}
// MockFirebaseClient is used to mock the behavior of a Firebase client for testing
type MockFirebaseClient struct {
MockApp IFirebaseApp
MockAppInitErr error
MockFirebaseUserTokens *FirebaseUserTokens
MockFirebaseAuthError error
}
// InitFirebase returns a mock Firebase app or error, as set on the struct
func (fc *MockFirebaseClient) InitFirebase() (IFirebaseApp, error) {
return fc.MockApp, fc.MockAppInitErr
}
// AuthenticateCustomFirebaseToken returns mock user tokens or an error, as set on the struct
func (fc *MockFirebaseClient) AuthenticateCustomFirebaseToken(_ string, _ *http.Client) (*FirebaseUserTokens, error) {
return fc.MockFirebaseUserTokens, fc.MockFirebaseAuthError
}