Something went wrong on our end
Select Git revision
-
Volker Schukai authoredVolker Schukai authored
job-syncer_test.go 1.19 KiB
//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")
}