summary history files

internal/store/log_comment_test.go
package store

import (
	"context"
	"ct/internal/testtooling"
	"os"
	"testing"

	"github.com/stretchr/testify/assert"
)

func TestLogComment(t *testing.T) {
	dbFile, db, err := testtooling.CreateTmpDB()
	if err != nil {
		t.Error(err)
	}
	defer db.Close()
	defer os.Remove(dbFile)

	ctx := context.Background()
	metricID, err := testtooling.CreateMetric(ctx, db)
	assert.Nil(t, err)

	logID, err := testtooling.CreateLog(ctx, db, *metricID)
	assert.Nil(t, err)

	logCommentStore := LogCommentStore{db}

	t.Run("Upsert", func(t *testing.T) {
		err = logCommentStore.Upsert(ctx, &Log{LogID: *logID}, "test")
		assert.Nil(t, err)

		tx, err := db.BeginTx(ctx, nil)
		assert.Nil(t, err)

		var comment string
		err = tx.QueryRowContext(ctx, "SELECT comment FROM log_comment WHERE log_id = ?", *logID).Scan(&comment)
		assert.Nil(t, err)
		assert.Equal(t, "test", comment)

		err = tx.Commit()
		assert.Nil(t, err)

		tx, err = db.BeginTx(ctx, nil)
		assert.Nil(t, err)

		err = logCommentStore.Upsert(ctx, &Log{LogID: *logID}, "more test")
		assert.Nil(t, err)

		err = tx.QueryRowContext(ctx, "SELECT comment FROM log_comment WHERE log_id = ?", *logID).Scan(&comment)
		assert.Nil(t, err)
		assert.Equal(t, "more test", comment)

		err = tx.Commit()
		assert.Nil(t, err)
	})
}