github.com/mattermosttest/mattermost-server/v5@v5.0.0-20200917143240-9dfa12e121f9/store/storetest/terms_of_service_store.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package storetest 5 6 import ( 7 "testing" 8 9 "github.com/mattermost/mattermost-server/v5/model" 10 "github.com/mattermost/mattermost-server/v5/store" 11 "github.com/stretchr/testify/assert" 12 "github.com/stretchr/testify/require" 13 ) 14 15 func TestTermsOfServiceStore(t *testing.T, ss store.Store) { 16 t.Run("TestSaveTermsOfService", func(t *testing.T) { testSaveTermsOfService(t, ss) }) 17 t.Run("TestGetLatestTermsOfService", func(t *testing.T) { testGetLatestTermsOfService(t, ss) }) 18 t.Run("TestGetTermsOfService", func(t *testing.T) { testGetTermsOfService(t, ss) }) 19 } 20 21 func testSaveTermsOfService(t *testing.T, ss store.Store) { 22 u1 := model.User{} 23 u1.Username = model.NewId() 24 u1.Email = MakeEmail() 25 u1.Nickname = model.NewId() 26 _, appErr := ss.User().Save(&u1) 27 require.Nil(t, appErr) 28 29 termsOfService := &model.TermsOfService{Text: "terms of service", UserId: u1.Id} 30 savedTermsOfService, err := ss.TermsOfService().Save(termsOfService) 31 require.Nil(t, err) 32 33 require.Len(t, savedTermsOfService.Id, 26, "Id should have been populated") 34 35 require.NotEqual(t, savedTermsOfService.CreateAt, 0, "Create at should have been populated") 36 } 37 38 func testGetLatestTermsOfService(t *testing.T, ss store.Store) { 39 u1 := model.User{} 40 u1.Username = model.NewId() 41 u1.Email = MakeEmail() 42 u1.Nickname = model.NewId() 43 _, appErr := ss.User().Save(&u1) 44 require.Nil(t, appErr) 45 46 termsOfService := &model.TermsOfService{Text: "terms of service", UserId: u1.Id} 47 _, err := ss.TermsOfService().Save(termsOfService) 48 require.Nil(t, err) 49 50 fetchedTermsOfService, err := ss.TermsOfService().GetLatest(true) 51 require.Nil(t, err) 52 assert.Equal(t, termsOfService.Text, fetchedTermsOfService.Text) 53 assert.Equal(t, termsOfService.UserId, fetchedTermsOfService.UserId) 54 } 55 56 func testGetTermsOfService(t *testing.T, ss store.Store) { 57 u1 := model.User{} 58 u1.Username = model.NewId() 59 u1.Email = MakeEmail() 60 u1.Nickname = model.NewId() 61 _, appErr := ss.User().Save(&u1) 62 require.Nil(t, appErr) 63 64 termsOfService := &model.TermsOfService{Text: "terms of service", UserId: u1.Id} 65 _, err := ss.TermsOfService().Save(termsOfService) 66 require.Nil(t, err) 67 68 r1, err := ss.TermsOfService().Get("an_invalid_id", true) 69 assert.NotNil(t, err) 70 assert.Nil(t, r1) 71 72 receivedTermsOfService, err := ss.TermsOfService().Get(termsOfService.Id, true) 73 assert.Nil(t, err) 74 assert.Equal(t, "terms of service", receivedTermsOfService.Text) 75 }