github.com/status-im/status-go@v1.1.0/services/appmetrics/api_test.go (about) 1 package appmetrics 2 3 import ( 4 "context" 5 "encoding/json" 6 "testing" 7 8 "github.com/status-im/status-go/appdatabase" 9 "github.com/status-im/status-go/appmetrics" 10 "github.com/status-im/status-go/t/helpers" 11 12 "github.com/stretchr/testify/require" 13 ) 14 15 func setupTestDB(t *testing.T) (*appmetrics.Database, func()) { 16 db, cleanup, err := helpers.SetupTestSQLDB(appdatabase.DbInitializer{}, "appmetrics-service") 17 require.NoError(t, err) 18 return appmetrics.NewDB(db), func() { require.NoError(t, cleanup()) } 19 } 20 21 func TestValidateAppMetrics(t *testing.T) { 22 db, close := setupTestDB(t) 23 defer close() 24 api := NewAPI(db) 25 26 validMetrics := []appmetrics.AppMetric{appmetrics.AppMetric{ 27 Event: "navigate-to", 28 Value: json.RawMessage(`{"view_id": "some-view-id", "params": {"screen": "login"}}`), 29 AppVersion: "1.12", 30 OS: "android"}} 31 32 invalidMetrics := []appmetrics.AppMetric{appmetrics.AppMetric{ 33 Event: "navigate-to", 34 Value: json.RawMessage("{}"), 35 AppVersion: "1.12", 36 OS: "android"}} 37 38 err := api.ValidateAppMetrics(context.Background(), validMetrics) 39 require.NoError(t, err) 40 41 err = api.ValidateAppMetrics(context.Background(), invalidMetrics) 42 require.Error(t, err) 43 }