Backend: Add unit tests for internal/form

This commit is contained in:
Theresa Gresch 2020-07-08 08:36:10 +02:00
parent d93ed7faa9
commit db2819821b
5 changed files with 152 additions and 2 deletions

View file

@ -24,6 +24,36 @@ func TestGeoSearch(t *testing.T) {
assert.Equal(t, uint(0x61a8), form.Dist)
assert.Equal(t, float32(33.45343), form.Lat)
})
t.Run("valid query path empty folder not empty", func(t *testing.T) {
form := &GeoSearch{Query: "query:\"fooBar baz\" before:2019-01-15 dist:25000 lat:33.45343166666667 folder:test"}
err := form.ParseQueryString()
if err != nil {
t.Fatal("err should be nil")
}
log.Debugf("%+v\n", form)
assert.Equal(t, "fooBar baz", form.Query)
assert.Equal(t, "test", form.Path)
assert.Equal(t, "test", form.Folder)
assert.Equal(t, time.Date(2019, 01, 15, 0, 0, 0, 0, time.UTC), form.Before)
assert.Equal(t, uint(0x61a8), form.Dist)
assert.Equal(t, float32(33.45343), form.Lat)
})
}
func TestGeoSearch_Serialize(t *testing.T) {
form := &GeoSearch{Query: "query:\"fooBar baz\"", Favorite: true}
assert.Equal(t, "q:\"query:fooBar baz\" favorite:true", form.Serialize())
}
func TestGeoSearch_SerializeAll(t *testing.T) {
form := &GeoSearch{Query: "query:\"fooBar baz\"", Favorite: true}
assert.Equal(t, "q:\"query:fooBar baz\" favorite:true", form.SerializeAll())
}
func TestNewGeoSearch(t *testing.T) {

View file

@ -0,0 +1,50 @@
package form
import (
"github.com/stretchr/testify/assert"
"testing"
)
func TestLogin_HasToken(t *testing.T) {
t.Run("false", func(t *testing.T) {
form := &Login{Email: "test@test.com", UserName: "John", Password: "passwd", Token: ""}
assert.Equal(t, false, form.HasToken())
})
t.Run("true", func(t *testing.T) {
form := &Login{Email: "test@test.com", UserName: "John", Password: "passwd", Token: "123"}
assert.Equal(t, true, form.HasToken())
})
}
func TestLogin_HasUserName(t *testing.T) {
t.Run("false", func(t *testing.T) {
form := &Login{Email: "test@test.com", Password: "passwd", Token: ""}
assert.Equal(t, false, form.HasUserName())
})
t.Run("true", func(t *testing.T) {
form := &Login{Email: "test@test.com", UserName: "John", Password: "passwd", Token: "123"}
assert.Equal(t, true, form.HasUserName())
})
}
func TestLogin_HasPassword(t *testing.T) {
t.Run("false", func(t *testing.T) {
form := &Login{Email: "test@test.com", Password: "", Token: ""}
assert.Equal(t, false, form.HasPassword())
})
t.Run("true", func(t *testing.T) {
form := &Login{Email: "test@test.com", UserName: "John", Password: "passwd", Token: "123"}
assert.Equal(t, true, form.HasPassword())
})
}
func TestLogin_HasCredentials(t *testing.T) {
t.Run("false", func(t *testing.T) {
form := &Login{Email: "test@test.com", Password: "passwd123", Token: ""}
assert.Equal(t, false, form.HasCredentials())
})
t.Run("true", func(t *testing.T) {
form := &Login{Email: "test@test.com", UserName: "John", Password: "passwd", Token: "123"}
assert.Equal(t, true, form.HasCredentials())
})
}

View file

@ -77,6 +77,21 @@ func TestParseQueryString(t *testing.T) {
assert.Equal(t, false, form.Duplicate)
assert.Equal(t, float32(33.45343), form.Lng)
})
t.Run("valid query with filter", func(t *testing.T) {
form := &PhotoSearch{Query: "label:cat title:\"fooBar baz\"", Filter: "label:dog"}
err := form.ParseQueryString()
log.Debugf("%+v\n", form)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, "dog", form.Label)
assert.Equal(t, "label:dog", form.Filter)
assert.Equal(t, "fooBar baz", form.Title)
})
t.Run("valid query with umlauts", func(t *testing.T) {
form := &PhotoSearch{Query: "title:\"tübingen\""}
@ -192,3 +207,23 @@ func TestPhotoSearch_Serialize(t *testing.T) {
assert.IsType(t, "string", result)
}
func TestPhotoSearch_SerializeAll(t *testing.T) {
form := PhotoSearch{
Query: "foo BAR",
Private: true,
Photo: false,
Lat: 1.5,
Lng: -10.33333,
Year: 2002,
Chroma: 1,
Diff: 424242,
Before: time.Date(2019, 01, 15, 0, 0, 0, 0, time.UTC),
}
result := form.SerializeAll()
t.Logf("SERIALIZED: %s", result)
assert.IsType(t, "string", result)
}

View file

@ -6,8 +6,24 @@ import (
)
func TestSelection_Empty(t *testing.T) {
t.Run("not empty", func(t *testing.T) {
sel := Selection{Photos: []string{"foo", "bar"}, Albums: []string{}, Labels: []string{}}
t.Run("not empty photos", func(t *testing.T) {
sel := Selection{Photos: []string{"foo", "bar"}, Albums: []string{}, Labels: []string{}, Files: []string{}, Places: []string{}}
assert.Equal(t, false, sel.Empty())
})
t.Run("not empty albums", func(t *testing.T) {
sel := Selection{Photos: []string{}, Albums: []string{"foo", "bar"}, Labels: []string{}, Files: []string{}, Places: []string{}}
assert.Equal(t, false, sel.Empty())
})
t.Run("not empty labels", func(t *testing.T) {
sel := Selection{Photos: []string{}, Albums: []string{}, Labels: []string{"foo", "bar"}, Files: []string{}, Places: []string{}}
assert.Equal(t, false, sel.Empty())
})
t.Run("not empty files", func(t *testing.T) {
sel := Selection{Photos: []string{}, Albums: []string{}, Labels: []string{}, Files: []string{"foo", "bar"}, Places: []string{}}
assert.Equal(t, false, sel.Empty())
})
t.Run("not empty places", func(t *testing.T) {
sel := Selection{Photos: []string{}, Albums: []string{}, Labels: []string{}, Files: []string{}, Places: []string{"foo", "bar"}}
assert.Equal(t, false, sel.Empty())
})
t.Run("empty", func(t *testing.T) {
@ -15,3 +31,17 @@ func TestSelection_Empty(t *testing.T) {
assert.Equal(t, true, sel.Empty())
})
}
func TestSelection_All(t *testing.T) {
t.Run("success", func(t *testing.T) {
sel := Selection{Photos: []string{"p123", "p456"}, Albums: []string{"a123"}, Labels: []string{"l123", "l456", "l789"}, Files: []string{"f567", "f111"}, Places: []string{"p568"}}
assert.Equal(t, []string{"p123", "p456", "a123", "l123", "l456", "l789", "p568"}, sel.All())
})
}
func TestSelection_String(t *testing.T) {
t.Run("success", func(t *testing.T) {
sel := Selection{Photos: []string{"p123", "p456"}, Albums: []string{"a123"}, Labels: []string{"l123", "l456", "l789"}, Files: []string{"f567", "f111"}, Places: []string{"p568"}}
assert.Equal(t, "p123, p456, a123, l123, l456, l789, p568", sel.String())
})
}

View file

@ -94,4 +94,9 @@ func TestSerialize(t *testing.T) {
assert.IsType(t, expectedAll, result)
assert.Equal(t, expectedAll, result)
})
t.Run("invalid argument", func(t *testing.T) {
result := Serialize("string", true)
assert.Equal(t, "", result)
})
}