69 lines
1.8 KiB
Go
69 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()
|
|
queries := db.queries()
|
|
|
|
authoredJob2 := authorTestJob("1295757b-e668-4c49-8b89-f73db8270e42", "just-a-job")
|
|
job2 := persistAuthoredJob(t, ctx, db, authoredJob2)
|
|
|
|
require.NoError(t, db.SetLastRendered(ctx, job1))
|
|
{
|
|
entries, err := queries.Test_FetchLastRendered(ctx)
|
|
require.NoError(t, err)
|
|
if assert.Len(t, entries, 1) {
|
|
assert.Equal(t, int64(job1.ID), entries[0].JobID, "job 1 should be the last-rendered one")
|
|
}
|
|
}
|
|
|
|
require.NoError(t, db.SetLastRendered(ctx, job2))
|
|
{
|
|
entries, err := queries.Test_FetchLastRendered(ctx)
|
|
require.NoError(t, err)
|
|
if assert.Len(t, entries, 1) {
|
|
assert.Equal(t, int64(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)
|
|
}
|
|
}
|