summary history files

internal/store/config_test.go
package store

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

func TestConfigStoreCreate(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)
	if err != nil {
		t.Error(err)
	}

	configStore := ConfigStore{db}
	if err = configStore.Create(ctx, *metricID); err != nil {
		t.Error(err)
	}
}

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

	configStore := ConfigStore{db}

	ctx := context.Background()
	if _, err = configStore.SelectOne(ctx, 1, "doesNotExist"); err == nil {
		t.Error("No error raised when calling configStore.SelectOne() with dummy option")
	}

	metricID, err := testtooling.CreateMetric(ctx, db)
	if err != nil {
		t.Error(err)
	}

	ret, err := configStore.SelectOne(ctx, *metricID, "data_type")
	if err != nil {
		t.Error(err)
	}
	if ret != "float" {
		t.Errorf("want float but got %s", ret)
	}
}

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

	configStore := ConfigStore{db}

	ctx := context.Background()
	ret, err := configStore.SelectLimit(ctx, 0)
	if err != nil {
		t.Error(err)
	}
	if len(ret) != 0 {
		t.Error()
	}

	for i := 0; i < 5; i++ {
		if _, err = testtooling.CreateMetric(ctx, db); err != nil {
			t.Error(err)
		}
	}

	ret, err = configStore.SelectLimit(ctx, 0)
	if err != nil {
		t.Error(err)
	}
	if len(ret) != 5 {
		t.Error()
	}

	ret, err = configStore.SelectLimit(ctx, 1)
	if err != nil {
		t.Error(err)
	}
	if len(ret) != 1 {
		t.Error()
	}
}