github.com/mattermosttest/mattermost-server/v5@v5.0.0-20200917143240-9dfa12e121f9/app/job_test.go (about)

     1  // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
     2  // See LICENSE.txt for license information.
     3  
     4  package app
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/mattermost/mattermost-server/v5/model"
    10  	"github.com/stretchr/testify/require"
    11  )
    12  
    13  func TestGetJob(t *testing.T) {
    14  	th := Setup(t)
    15  	defer th.TearDown()
    16  
    17  	status := &model.Job{
    18  		Id:     model.NewId(),
    19  		Status: model.NewId(),
    20  	}
    21  	_, err := th.App.Srv().Store.Job().Save(status)
    22  	require.Nil(t, err)
    23  
    24  	defer th.App.Srv().Store.Job().Delete(status.Id)
    25  
    26  	received, err := th.App.GetJob(status.Id)
    27  	require.Nil(t, err)
    28  	require.Equal(t, status, received, "incorrect job status received")
    29  }
    30  
    31  func TestGetJobByType(t *testing.T) {
    32  	th := Setup(t)
    33  	defer th.TearDown()
    34  
    35  	jobType := model.NewId()
    36  
    37  	statuses := []*model.Job{
    38  		{
    39  			Id:       model.NewId(),
    40  			Type:     jobType,
    41  			CreateAt: 1000,
    42  		},
    43  		{
    44  			Id:       model.NewId(),
    45  			Type:     jobType,
    46  			CreateAt: 999,
    47  		},
    48  		{
    49  			Id:       model.NewId(),
    50  			Type:     jobType,
    51  			CreateAt: 1001,
    52  		},
    53  	}
    54  
    55  	for _, status := range statuses {
    56  		_, err := th.App.Srv().Store.Job().Save(status)
    57  		require.Nil(t, err)
    58  		defer th.App.Srv().Store.Job().Delete(status.Id)
    59  	}
    60  
    61  	received, err := th.App.GetJobsByType(jobType, 0, 2)
    62  	require.Nil(t, err)
    63  	require.Len(t, received, 2, "received wrong number of statuses")
    64  	require.Equal(t, statuses[2], received[0], "should've received newest job first")
    65  	require.Equal(t, statuses[0], received[1], "should've received second newest job second")
    66  
    67  	received, err = th.App.GetJobsByType(jobType, 2, 2)
    68  	require.Nil(t, err)
    69  	require.Len(t, received, 1, "received wrong number of statuses")
    70  	require.Equal(t, statuses[1], received[0], "should've received oldest job last")
    71  }