From 577ed27f1bb060080d311342047e31943a02ccbb Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Thu, 18 May 2017 15:05:57 -0400 Subject: PLT-6408 Framework for job server (#6404) * Added initial job server * Added job server to be ran as part of platform * Added test job to the enterprise repo * Fixed job server not loading license * Renamed job package to jobs * Fixed TE not being buildable * Added JobStatus table to database * Changed fields used by JobStatus * Added APIs to query job status * Added config change listener to server * Added option to run job server from Makefile * Added ability to enable/disable jobs from config * Commented out placeholder for search indexing job * Fixed govet * Removed debug messages and fixed job api init message --- app/job_test.go | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 app/job_test.go (limited to 'app/job_test.go') diff --git a/app/job_test.go b/app/job_test.go new file mode 100644 index 000000000..20e9dee8a --- /dev/null +++ b/app/job_test.go @@ -0,0 +1,78 @@ +// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +package app + +import ( + "testing" + + "github.com/mattermost/platform/model" + "github.com/mattermost/platform/store" +) + +func TestGetJobStatus(t *testing.T) { + Setup() + + status := &model.JobStatus{ + Id: model.NewId(), + Status: model.NewId(), + } + if result := <-Srv.Store.JobStatus().SaveOrUpdate(status); result.Err != nil { + t.Fatal(result.Err) + } + + defer Srv.Store.JobStatus().Delete(status.Id) + + if received, err := GetJobStatus(status.Id); err != nil { + t.Fatal(err) + } else if received.Id != status.Id || received.Status != status.Status { + t.Fatal("inccorrect job status received") + } +} + +func TestGetJobStatusesByType(t *testing.T) { + Setup() + + jobType := model.NewId() + + statuses := []*model.JobStatus{ + { + Id: model.NewId(), + Type: jobType, + StartAt: 1000, + }, + { + Id: model.NewId(), + Type: jobType, + StartAt: 999, + }, + { + Id: model.NewId(), + Type: jobType, + StartAt: 1001, + }, + } + + for _, status := range statuses { + store.Must(Srv.Store.JobStatus().SaveOrUpdate(status)) + defer Srv.Store.JobStatus().Delete(status.Id) + } + + if received, err := GetJobStatusesByType(jobType, 0, 2); err != nil { + t.Fatal(err) + } else if len(received) != 2 { + t.Fatal("received wrong number of statuses") + } else if received[0].Id != statuses[1].Id { + t.Fatal("should've received newest job first") + } else if received[1].Id != statuses[0].Id { + t.Fatal("should've received second newest job second") + } + + if received, err := GetJobStatusesByType(jobType, 2, 2); err != nil { + t.Fatal(err) + } else if len(received) != 1 { + t.Fatal("received wrong number of statuses") + } else if received[0].Id != statuses[2].Id { + t.Fatal("should've received oldest job last") + } +} -- cgit v1.2.3-1-g7c22