Added tests for listitems
This commit is contained in:
parent
2c12797111
commit
f7bc88c825
6 changed files with 92 additions and 2 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -4,4 +4,5 @@ config.ini
|
||||||
*.db
|
*.db
|
||||||
Run
|
Run
|
||||||
vikunja
|
vikunja
|
||||||
dist/
|
dist/
|
||||||
|
cover.*
|
|
@ -183,6 +183,7 @@ doch auch in einer Funktion machbar sein.
|
||||||
* [ ] Validation der ankommenden structs
|
* [ ] Validation der ankommenden structs
|
||||||
* [ ] Viper für config einbauen und ini rauswerfen
|
* [ ] Viper für config einbauen und ini rauswerfen
|
||||||
* [ ] Docs für installationsanleitung
|
* [ ] Docs für installationsanleitung
|
||||||
|
* [ ] Tests für Rechtekram
|
||||||
|
|
||||||
* [ ] "Apiformat" Methoden, damit in der Ausgabe zb kein Passwort drin ist..., oder created/updated von Nutzern... oder ownerID nicht drin ist sondern nur das ownerobject
|
* [ ] "Apiformat" Methoden, damit in der Ausgabe zb kein Passwort drin ist..., oder created/updated von Nutzern... oder ownerID nicht drin ist sondern nur das ownerobject
|
||||||
* [x] Rechte überprüfen:
|
* [x] Rechte überprüfen:
|
||||||
|
|
2
Makefile
2
Makefile
|
@ -54,7 +54,7 @@ clean:
|
||||||
|
|
||||||
.PHONY: test
|
.PHONY: test
|
||||||
test:
|
test:
|
||||||
go test -cover $(PACKAGES)
|
go test -cover -coverprofile cover.out $(PACKAGES)
|
||||||
|
|
||||||
required-gofmt-version:
|
required-gofmt-version:
|
||||||
@go version | grep -q '\(1.7\|1.8\|1.9\|1.10\)' || { echo "We require go version 1.7, 1.8, 1.9 or 1.10 to format code" >&2 && exit 1; }
|
@go version | grep -q '\(1.7\|1.8\|1.9\|1.10\)' || { echo "We require go version 1.7, 1.8, 1.9 or 1.10 to format code" >&2 && exit 1; }
|
||||||
|
|
6
models/fixtures/list.yml
Normal file
6
models/fixtures/list.yml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
-
|
||||||
|
id: 1
|
||||||
|
title: Test1
|
||||||
|
description: Lorem Ipsum
|
||||||
|
owner_id: 1
|
||||||
|
namespace_id: 1
|
|
@ -27,6 +27,12 @@ func createOrUpdateListItem(i *ListItem, doer *User) (err error) {
|
||||||
return ErrListItemCannotBeEmpty{}
|
return ErrListItemCannotBeEmpty{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check if the list exists
|
||||||
|
_, err = GetListByID(i.ListID)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// Do the update
|
// Do the update
|
||||||
if i.ID != 0 {
|
if i.ID != 0 {
|
||||||
_, err = x.ID(i.ID).Update(i)
|
_, err = x.ID(i.ID).Update(i)
|
||||||
|
|
76
models/list_items_test.go
Normal file
76
models/list_items_test.go
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestListItem_Create(t *testing.T) {
|
||||||
|
assert.NoError(t, PrepareTestDatabase())
|
||||||
|
|
||||||
|
// Fake list item
|
||||||
|
listitem := ListItem{
|
||||||
|
Text: "Lorem",
|
||||||
|
Description: "Lorem Ipsum BACKERY",
|
||||||
|
ListID: 1,
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add one point to a list
|
||||||
|
doer, _, err := GetUserByID(1)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
assert.True(t, listitem.CanCreate(&doer))
|
||||||
|
|
||||||
|
err = listitem.Create(&doer)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
// Update it
|
||||||
|
listitem.Text = "Test34"
|
||||||
|
assert.True(t, listitem.CanUpdate(&doer))
|
||||||
|
err = listitem.Update()
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
// Check if it was updated
|
||||||
|
li, err := GetListItemByID(listitem.ID)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.Equal(t, li.Text, "Test34")
|
||||||
|
|
||||||
|
// Delete the item
|
||||||
|
assert.True(t, listitem.CanDelete(&doer))
|
||||||
|
err = listitem.Delete()
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
// Delete a nonexistant item
|
||||||
|
listitem.ID = 0
|
||||||
|
err = listitem.Delete()
|
||||||
|
assert.Error(t, err)
|
||||||
|
assert.True(t, IsErrListItemDoesNotExist(err))
|
||||||
|
|
||||||
|
// Try adding a list item with an empty text
|
||||||
|
listitem.Text = ""
|
||||||
|
err = listitem.Create(&doer)
|
||||||
|
assert.Error(t, err)
|
||||||
|
assert.True(t, IsErrListItemCannotBeEmpty(err))
|
||||||
|
|
||||||
|
// Try adding one to a nonexistant list
|
||||||
|
listitem.ListID = 99993939
|
||||||
|
listitem.Text = "Lorem Ipsum"
|
||||||
|
err = listitem.Create(&doer)
|
||||||
|
assert.Error(t, err)
|
||||||
|
assert.True(t, IsErrListDoesNotExist(err))
|
||||||
|
|
||||||
|
// Try updating a nonexistant item
|
||||||
|
listitem.ID = 94829352
|
||||||
|
err = listitem.Update()
|
||||||
|
assert.Error(t, err)
|
||||||
|
assert.True(t, IsErrListItemDoesNotExist(err))
|
||||||
|
|
||||||
|
// Try inserting an item with a nonexistant user
|
||||||
|
nUser := &User{ID: 9482385}
|
||||||
|
listitem.ListID = 1
|
||||||
|
err = listitem.Create(nUser)
|
||||||
|
assert.Error(t, err)
|
||||||
|
fmt.Println(err)
|
||||||
|
assert.True(t, IsErrUserDoesNotExist(err))
|
||||||
|
}
|
Loading…
Reference in a new issue