Something went wrong on our end
Select Git revision
command_test.go
-
Volker Schukai authoredVolker Schukai authored
database-7_test.go 1.31 KiB
// Copyright 2024 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 TestCreateOrUpdateJob(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
// Migrate the schema
assert.NoError(t, db.AutoMigrate(&JobPersistence{}, &JobLog{}, &JobStats{}))
runner := &CounterRunnable{}
job := NewJob[CounterResult]("job1", runner)
assert.NoError(t, saveJob(job.GetPersistence(), db))
var jobPersistence JobPersistence
assert.NoError(t, db.First(&jobPersistence, "id = ?", job.GetID()).Error)
assert.Equal(t, job.GetID(), jobPersistence.ID)
assert.Equal(t, "", jobPersistence.Description)
assert.Equal(t, Priority(1), jobPersistence.Priority)
job.description = "Updated description"
assert.NoError(t, saveJob(job.GetPersistence(), db))
assert.NoError(t, db.First(&jobPersistence, "id = ?", job.GetID()).Error)
assert.Equal(t, "Updated description", jobPersistence.Description)
}