// 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("a 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) }