diff options
author | Harrison Healey <harrisonmhealey@gmail.com> | 2017-05-18 15:05:57 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-18 15:05:57 -0400 |
commit | 577ed27f1bb060080d311342047e31943a02ccbb (patch) | |
tree | ad57fa69b1daf143e914ea2480a475e5450cc236 /app/job_test.go | |
parent | 920bc0d8712a50691b1f698779f60132536eb214 (diff) | |
download | chat-577ed27f1bb060080d311342047e31943a02ccbb.tar.gz chat-577ed27f1bb060080d311342047e31943a02ccbb.tar.bz2 chat-577ed27f1bb060080d311342047e31943a02ccbb.zip |
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
Diffstat (limited to 'app/job_test.go')
-rw-r--r-- | app/job_test.go | 78 |
1 files changed, 78 insertions, 0 deletions
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") + } +} |