
Back in the days when I wrote the code, I didn't know about the `require` package yet. Using `require.NoError()` makes the test code more straight-forward. No functional changes, except that when tests fail, they now fail without panicking.
68 lines
1.8 KiB
Go
68 lines
1.8 KiB
Go
package persistence
|
|
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestSetLastRendered(t *testing.T) {
|
|
ctx, close, db, job1, _ := jobTasksTestFixtures(t)
|
|
defer close()
|
|
|
|
authoredJob2 := authorTestJob("1295757b-e668-4c49-8b89-f73db8270e42", "just-a-job")
|
|
job2 := persistAuthoredJob(t, ctx, db, authoredJob2)
|
|
|
|
require.NoError(t, db.SetLastRendered(ctx, job1))
|
|
{
|
|
entries := []LastRendered{}
|
|
db.gormDB.Model(&LastRendered{}).Scan(&entries)
|
|
if assert.Len(t, entries, 1) {
|
|
assert.Equal(t, job1.ID, entries[0].JobID, "job 1 should be the last-rendered one")
|
|
}
|
|
}
|
|
|
|
require.NoError(t, db.SetLastRendered(ctx, job2))
|
|
{
|
|
entries := []LastRendered{}
|
|
db.gormDB.Model(&LastRendered{}).Scan(&entries)
|
|
if assert.Len(t, entries, 1) {
|
|
assert.Equal(t, job2.ID, entries[0].JobID, "job 2 should be the last-rendered one")
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestGetLastRenderedJobUUID(t *testing.T) {
|
|
ctx, close, db, job1, _ := jobTasksTestFixtures(t)
|
|
defer close()
|
|
|
|
{
|
|
// Test without any renders.
|
|
lastUUID, err := db.GetLastRenderedJobUUID(ctx)
|
|
require.NoError(t, err, "absence of renders should not cause an error")
|
|
assert.Empty(t, lastUUID)
|
|
}
|
|
|
|
{
|
|
// Test with first render.
|
|
require.NoError(t, db.SetLastRendered(ctx, job1))
|
|
lastUUID, err := db.GetLastRenderedJobUUID(ctx)
|
|
require.NoError(t, err)
|
|
assert.Equal(t, job1.UUID, lastUUID)
|
|
}
|
|
|
|
{
|
|
// Test with 2nd or subsequent render.
|
|
authoredJob2 := authorTestJob("1295757b-e668-4c49-8b89-f73db8270e42", "just-a-job")
|
|
job2 := persistAuthoredJob(t, ctx, db, authoredJob2)
|
|
|
|
require.NoError(t, db.SetLastRendered(ctx, job2))
|
|
lastUUID, err := db.GetLastRenderedJobUUID(ctx)
|
|
require.NoError(t, err)
|
|
assert.Equal(t, job2.UUID, lastUUID)
|
|
}
|
|
}
|