//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) { 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 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) }