From 997127f33ed16550543a02728f4f9ac8afae0845 Mon Sep 17 00:00:00 2001 From: Dmitry Verkhoturov Date: Sun, 22 Dec 2019 22:23:37 +0100 Subject: [PATCH] add tests for service operations with user details --- backend/app/store/engine/bolt_test.go | 2 +- backend/app/store/service/service_test.go | 35 +++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/backend/app/store/engine/bolt_test.go b/backend/app/store/engine/bolt_test.go index b33470b5..391668ab 100644 --- a/backend/app/store/engine/bolt_test.go +++ b/backend/app/store/engine/bolt_test.go @@ -625,7 +625,7 @@ func TestBoltDB_UserDetail(t *testing.T) { b, teardown := prep(t) defer teardown() - // add to entries to DB before we start + // add two entries to DB before we start result, err := b.UserDetail(UserDetailRequest{Locator: store.Locator{SiteID: "radio-t"}, UserID: "u1", Detail: UserEmail, Update: "test@example.com"}) assert.NoError(t, err, "No error inserting entry expected") assert.ElementsMatch(t, []UserDetailEntry{{UserID: "u1", Email: "test@example.com"}}, result) diff --git a/backend/app/store/service/service_test.go b/backend/app/store/service/service_test.go index 8777fde9..a119076c 100644 --- a/backend/app/store/service/service_test.go +++ b/backend/app/store/service/service_test.go @@ -774,6 +774,41 @@ func TestService_SetMetas(t *testing.T) { assert.Equal(t, []engine.UserDetailEntry{{UserID: "user1", Email: "test@example.org"}}, val) } +func TestService_UserDetailsOperations(t *testing.T) { + defer teardown(t) + b := DataStore{Engine: prepStoreEngine(t), EditDuration: 100 * time.Millisecond, + AdminStore: admin.NewStaticKeyStore("secret 123")} + + // add single valid entry + result, err := b.SetUserEmail(store.Locator{SiteID: "radio-t"}, "u1", "test@example.com") + assert.NoError(t, err, "No error inserting entry expected") + assert.Equal(t, "test@example.com", result) + + // read valid entry back + result, err = b.GetUserEmail(store.Locator{SiteID: "radio-t"}, "u1") + assert.NoError(t, err, "No error reading entry expected") + assert.Equal(t, "test@example.com", result) + + // delete existing entry + err = b.DeleteUserDetail(store.Locator{SiteID: "radio-t"}, "u1", engine.UserEmail) + assert.NoError(t, err, "No error deleting entry expected") + + // read deleted entry + result, err = b.GetUserEmail(store.Locator{SiteID: "radio-t"}, "u1") + assert.NoError(t, err, "No error reading entry expected") + assert.Empty(t, result) + + // insert entry with invalid site_id + result, err = b.SetUserEmail(store.Locator{SiteID: "bad-site"}, "u3", "does_not_matter@example.com") + assert.Error(t, err, "Site not found") + assert.Empty(t, result) + + // read entry with invalid site_id + result, err = b.GetUserEmail(store.Locator{SiteID: "bad-site"}, "u3") + assert.Error(t, err, "Site not found") + assert.Empty(t, result) +} + func TestService_IsAdmin(t *testing.T) { defer teardown(t) // two comments for https://radio-t.com