github.com/mattermosttest/mattermost-server/v5@v5.0.0-20200917143240-9dfa12e121f9/store/storetest/audit_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  	"time"
     9  
    10  	"github.com/mattermost/mattermost-server/v5/model"
    11  	"github.com/mattermost/mattermost-server/v5/store"
    12  	"github.com/stretchr/testify/assert"
    13  	"github.com/stretchr/testify/require"
    14  )
    15  
    16  func TestAuditStore(t *testing.T, ss store.Store) {
    17  	t.Run("", func(t *testing.T) { testAuditStore(t, ss) })
    18  }
    19  
    20  func testAuditStore(t *testing.T, ss store.Store) {
    21  	audit := &model.Audit{UserId: model.NewId(), IpAddress: "ipaddress", Action: "Action"}
    22  	require.Nil(t, ss.Audit().Save(audit))
    23  	time.Sleep(100 * time.Millisecond)
    24  	require.Nil(t, ss.Audit().Save(audit))
    25  	time.Sleep(100 * time.Millisecond)
    26  	require.Nil(t, ss.Audit().Save(audit))
    27  	time.Sleep(100 * time.Millisecond)
    28  	audit.ExtraInfo = "extra"
    29  	time.Sleep(100 * time.Millisecond)
    30  	require.Nil(t, ss.Audit().Save(audit))
    31  
    32  	time.Sleep(100 * time.Millisecond)
    33  
    34  	audits, err := ss.Audit().Get(audit.UserId, 0, 100)
    35  	require.Nil(t, err)
    36  
    37  	assert.Len(t, audits, 4)
    38  
    39  	assert.Equal(t, "extra", audits[0].ExtraInfo)
    40  
    41  	audits, err = ss.Audit().Get("missing", 0, 100)
    42  	require.Nil(t, err)
    43  	assert.Empty(t, audits)
    44  
    45  	audits, err = ss.Audit().Get("", 0, 100)
    46  	require.Nil(t, err)
    47  	require.Len(t, audits, 4, "Failed to save and retrieve 4 audit logs")
    48  
    49  	require.Nil(t, ss.Audit().PermanentDeleteByUser(audit.UserId))
    50  }