Select Git revision
database-3_test.go

Volker Schukai authored
database-3_test.go 1.18 KiB
//go:build !runOnTask
// Copyright 2023 schukai GmbH
// SPDX-License-Identifier: AGPL-3.0
package jobqueue
import (
"github.com/stretchr/testify/assert"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
"testing"
"time"
)
func TestWriteToDB3(t *testing.T) {
db, err := gorm.Open(sqlite.Open("file::memory:?cache=shared"), &gorm.Config{})
if err != nil {
t.Fatalf("a error occurred while opening the database: %v", err)
}
db.Logger = db.Logger.LogMode(4)
manager := NewManager()
manager.SetDB(db)
err = manager.AddWorker(NewLocalWorker(1))
assert.Nil(t, err)
err = manager.Start()
assert.Nil(t, err)
runner := &CounterRunnable{}
job := NewJob[CounterResult]("job2", runner)
scheduler := &InstantScheduler{}
err = manager.ScheduleJob(job, scheduler)
assert.Nil(t, err)
time.Sleep(1 * time.Second)
// test is job in database
var tmpJob1 JobPersistence
r := db.First(&tmpJob1, "id = ?", "job2")
assert.Nil(t, r.Error)
assert.Equal(t, JobID("job2"), tmpJob1.ID)
time.Sleep(1 * time.Second)
err = manager.DeleteJob(job.GetID())
assert.Nil(t, err)
// test is job in database
var tmpJob JobPersistence
err = db.First(&tmpJob, "id = ?", "job2").Error
assert.NotNil(t, err)
}