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  }