added test with db, checking if it works in drone

This commit is contained in:
BroodjeAap 2022-09-30 19:50:56 +00:00
parent 762a04bb6f
commit 4a797c69ce
2 changed files with 75 additions and 4 deletions

View file

@ -124,7 +124,7 @@ func getFilterResult(filter *Filter, db *gorm.DB) {
}
case "lowert":
{
getFilterResultConditionLowerThan(filter, db)
getFilterResultConditionLowerThan(filter)
}
case "higherl":
{
@ -136,7 +136,7 @@ func getFilterResult(filter *Filter, db *gorm.DB) {
}
case "highert":
{
getFilterResultConditionHigherThan(filter, db)
getFilterResultConditionHigherThan(filter)
}
}
}
@ -456,6 +456,7 @@ func getFilterResultConditionDiff(filter *Filter, db *gorm.DB) {
db.Model(&FilterOutput{}).Order("time desc").Where("watch_id = ? AND name = ?", filter.WatchID, filter.Name).Limit(1).Find(&previousOutput)
for _, parent := range filter.Parents {
for _, result := range parent.Results {
if previousOutput.WatchID == 0 {
filter.Results = append(filter.Results, result)
} else if previousOutput.Value != result {
@ -523,7 +524,7 @@ func getFilterResultConditionLowest(filter *Filter, db *gorm.DB) {
}
}
func getFilterResultConditionLowerThan(filter *Filter, db *gorm.DB) {
func getFilterResultConditionLowerThan(filter *Filter) {
if filter.Var2 == nil {
log.Println("No threshold given for Lower Than Filter")
return
@ -605,7 +606,7 @@ func getFilterResultConditionHighest(filter *Filter, db *gorm.DB) {
}
}
func getFilterResultConditionHigherThan(filter *Filter, db *gorm.DB) {
func getFilterResultConditionHigherThan(filter *Filter) {
if filter.Var2 == nil {
log.Println("No threshold given for Higher Than Filter")
return

View file

@ -2,8 +2,13 @@ package main
import (
"fmt"
"log"
"os"
"reflect"
"testing"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
)
const HTML_STRING = `<html>
@ -450,3 +455,68 @@ func TestFilterRound(t *testing.T) {
})
}
}
func getTestDB() *gorm.DB {
db, _ := gorm.Open(sqlite.Open("./test.db"))
db.AutoMigrate(&Watch{}, &Filter{}, &FilterConnection{}, &FilterOutput{})
return db
}
func TestConditionDiff(t *testing.T) {
db := getTestDB()
var tests = []struct {
dbInput []FilterOutput
WatchID uint
Input []string
Want []string
}{
{
[]FilterOutput{
{
WatchID: 1,
Name: "Test",
Value: "Last",
},
},
1,
[]string{"New"},
[]string{"New"},
},
{
[]FilterOutput{
{
WatchID: 2,
Name: "Test",
Value: "Same",
},
},
2,
[]string{"Same"},
[]string{},
},
}
for _, test := range tests {
testname := fmt.Sprintf("%s", test.Input)
t.Run(testname, func(t *testing.T) {
db.Create(&test.dbInput)
filter := Filter{
WatchID: test.WatchID,
Name: "Test",
Parents: []*Filter{
{Results: test.Input},
},
}
getFilterResultConditionDiff(
&filter,
db,
)
if (filter.Results != nil && test.Want != nil) && !reflect.DeepEqual(test.Want, filter.Results) {
t.Errorf("Got %s, want %s", filter.Results, test.Want)
}
})
}
err := os.Remove("./test.db")
if err != nil {
log.Println("Could not remove test db:", err)
}
}