Select Git revision
camera-capture.pcss
database-5_test.go 1.22 KiB
// 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"
)
func TestWriteToDB5(t *testing.T) {
gormDB, err := gorm.Open(sqlite.Open("file:unique_id?mode=memory&cache=shared"), &gorm.Config{})
if err != nil {
t.Fatalf("an error occurred while opening the database: %v", err)
}
t.Cleanup(func() {
sqlDB, err := gormDB.DB()
if err != nil {
t.Fatalf("failed to get generic database object from GORM DB: %v", err)
}
_ = sqlDB.Close()
})
db := gormDB
manager := NewManager()
manager.SetDB(db)
err = manager.AddWorker(NewLocalWorker(1))
assert.Nil(t, err)
err = manager.Start()
assert.Nil(t, err)
mgr := manager
runner := &CounterRunnable{}
job := NewJob[CounterResult]("jobSameID", runner)
scheduler := &InstantScheduler{}
err = mgr.ScheduleJob(job, scheduler)
assert.Nil(t, err)
sameIDJob := NewJob[CounterResult]("jobSameID", runner)
manager.WaitSync()
// Trying to save a job with the same ID should do nothing
mgr.mu.Lock()
mgr.jobSyncer.Sync(sameIDJob)
mgr.mu.Unlock()
err = mgr.CancelJobSchedule("jobSameID")
assert.Nil(t, err)
manager.WaitSync()
assert.Nil(t, err)
}