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.UUID)) { 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.UUID)) { 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.UUID)) 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.UUID)) lastUUID, err := db.GetLastRenderedJobUUID(ctx) require.NoError(t, err) assert.Equal(t, job2.UUID, lastUUID) } }