//go:build !runOnTask // Copyright 2023 schukai GmbH // SPDX-License-Identifier: AGPL-3.0 package jobqueue import ( "gorm.io/gorm" "testing" "time" "github.com/stretchr/testify/assert" "gorm.io/driver/sqlite" ) func TestSaveJobWithSQLite(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() }) manager := &Manager{database: gormDB} //saver := NewJobSyncer(manager) // Starte den DBSaver saver := NewJobSyncer(manager) jobID := JobID("testJob") job := NewJob[CounterResult](jobID, &CounterRunnable{}) saver.Sync(job) time.Sleep(100 * time.Millisecond) manager.WaitSync() var count int64 gormDB.Model(&JobPersistence{}).Count(&count) assert.Equal(t, int64(1), count, "It should be 1 job in the database") // get job from database var jobFromDB JobPersistence gormDB.First(&jobFromDB, "id = ?", jobID) assert.Equal(t, jobID, jobFromDB.ID, "JobID should be the same") }