mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
* 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
189 lines
3.3 KiB
Go
189 lines
3.3 KiB
Go
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
|
|
// See License.txt for license information.
|
|
|
|
package model
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestCreateTask(t *testing.T) {
|
|
TASK_NAME := "Test Task"
|
|
TASK_TIME := time.Second * 3
|
|
|
|
testValue := 0
|
|
testFunc := func() {
|
|
testValue = 1
|
|
}
|
|
|
|
task := CreateTask(TASK_NAME, testFunc, TASK_TIME)
|
|
if testValue != 0 {
|
|
t.Fatal("Unexpected execuition of task")
|
|
}
|
|
|
|
time.Sleep(TASK_TIME + time.Second)
|
|
|
|
if testValue != 1 {
|
|
t.Fatal("Task did not execute")
|
|
}
|
|
|
|
if task.Name != TASK_NAME {
|
|
t.Fatal("Bad name")
|
|
}
|
|
|
|
if task.Interval != TASK_TIME {
|
|
t.Fatal("Bad interval")
|
|
}
|
|
|
|
if task.Recurring != false {
|
|
t.Fatal("should not reccur")
|
|
}
|
|
}
|
|
|
|
func TestCreateRecurringTask(t *testing.T) {
|
|
TASK_NAME := "Test Recurring Task"
|
|
TASK_TIME := time.Second * 3
|
|
|
|
testValue := 0
|
|
testFunc := func() {
|
|
testValue += 1
|
|
}
|
|
|
|
task := CreateRecurringTask(TASK_NAME, testFunc, TASK_TIME)
|
|
if testValue != 0 {
|
|
t.Fatal("Unexpected execuition of task")
|
|
}
|
|
|
|
time.Sleep(TASK_TIME + time.Second)
|
|
|
|
if testValue != 1 {
|
|
t.Fatal("Task did not execute")
|
|
}
|
|
|
|
time.Sleep(TASK_TIME)
|
|
|
|
if testValue != 2 {
|
|
t.Fatal("Task did not re-execute")
|
|
}
|
|
|
|
if task.Name != TASK_NAME {
|
|
t.Fatal("Bad name")
|
|
}
|
|
|
|
if task.Interval != TASK_TIME {
|
|
t.Fatal("Bad interval")
|
|
}
|
|
|
|
if task.Recurring != true {
|
|
t.Fatal("should reccur")
|
|
}
|
|
|
|
task.Cancel()
|
|
}
|
|
|
|
func TestCancelTask(t *testing.T) {
|
|
TASK_NAME := "Test Task"
|
|
TASK_TIME := time.Second * 3
|
|
|
|
testValue := 0
|
|
testFunc := func() {
|
|
testValue = 1
|
|
}
|
|
|
|
task := CreateTask(TASK_NAME, testFunc, TASK_TIME)
|
|
if testValue != 0 {
|
|
t.Fatal("Unexpected execuition of task")
|
|
}
|
|
task.Cancel()
|
|
|
|
time.Sleep(TASK_TIME + time.Second)
|
|
|
|
if testValue != 0 {
|
|
t.Fatal("Unexpected execuition of task")
|
|
}
|
|
}
|
|
|
|
func TestGetAllTasks(t *testing.T) {
|
|
doNothing := func() {}
|
|
|
|
CreateTask("Task1", doNothing, time.Hour)
|
|
CreateTask("Task2", doNothing, time.Second)
|
|
CreateRecurringTask("Task3", doNothing, time.Second)
|
|
task4 := CreateRecurringTask("Task4", doNothing, time.Second)
|
|
|
|
task4.Cancel()
|
|
|
|
time.Sleep(time.Second * 3)
|
|
|
|
tasks := *GetAllTasks()
|
|
if len(tasks) != 2 {
|
|
t.Fatal("Wrong number of tasks got: ", len(tasks))
|
|
}
|
|
for _, task := range tasks {
|
|
if task.Name != "Task1" && task.Name != "Task3" {
|
|
t.Fatal("Wrong tasks")
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestExecuteTask(t *testing.T) {
|
|
TASK_NAME := "Test Task"
|
|
TASK_TIME := time.Second * 5
|
|
|
|
testValue := 0
|
|
testFunc := func() {
|
|
testValue += 1
|
|
}
|
|
|
|
task := CreateTask(TASK_NAME, testFunc, TASK_TIME)
|
|
if testValue != 0 {
|
|
t.Fatal("Unexpected execuition of task")
|
|
}
|
|
|
|
task.Execute()
|
|
|
|
if testValue != 1 {
|
|
t.Fatal("Task did not execute")
|
|
}
|
|
|
|
time.Sleep(TASK_TIME + time.Second)
|
|
|
|
if testValue != 2 {
|
|
t.Fatal("Task re-executed")
|
|
}
|
|
}
|
|
|
|
func TestExecuteTaskRecurring(t *testing.T) {
|
|
TASK_NAME := "Test Recurring Task"
|
|
TASK_TIME := time.Second * 5
|
|
|
|
testValue := 0
|
|
testFunc := func() {
|
|
testValue += 1
|
|
}
|
|
|
|
task := CreateRecurringTask(TASK_NAME, testFunc, TASK_TIME)
|
|
if testValue != 0 {
|
|
t.Fatal("Unexpected execuition of task")
|
|
}
|
|
|
|
time.Sleep(time.Second * 3)
|
|
|
|
task.Execute()
|
|
if testValue != 1 {
|
|
t.Fatal("Task did not execute")
|
|
}
|
|
|
|
time.Sleep(time.Second * 3)
|
|
if testValue != 1 {
|
|
t.Fatal("Task should not have executed before 5 seconds")
|
|
}
|
|
|
|
time.Sleep(time.Second * 3)
|
|
|
|
if testValue != 2 {
|
|
t.Fatal("Task did not re-execute after forced execution")
|
|
}
|
|
}
|