3
0

fix(internal): test suite updates

This commit is contained in:
Tit Petric
2019-04-03 13:50:15 +02:00
parent 272593329a
commit 3f24e99ba3
5 changed files with 34 additions and 37 deletions

View File

@@ -1,3 +1,5 @@
// +build unit
package mail
import (

View File

@@ -1,3 +1,5 @@
// +build integration
package rules_test
import (
@@ -5,7 +7,6 @@ import (
"os"
"testing"
"github.com/joho/godotenv"
"github.com/namsral/flag"
"github.com/titpetric/factory"
@@ -13,17 +14,8 @@ import (
)
func TestMain(m *testing.M) {
// @todo this is a very optimistic initialization, make it more robust
godotenv.Load("../../.env")
prefix := "system"
dsn := ""
p := func(s string) string {
return prefix + "-" + s
}
flag.StringVar(&dsn, p("db-dsn"), "crust:crust@tcp(db1:3306)/crust?collation=utf8mb4_general_ci", "DSN for database connection")
flag.StringVar(&dsn, "db-dsn", "crust:crust@tcp(crust-db:3306)/crust?collation=utf8mb4_general_ci", "DSN for database connection")
flag.Parse()
factory.Database.Add("default", dsn)

View File

@@ -1,3 +1,5 @@
// +build unit
package rules
import (

View File

@@ -1,3 +1,5 @@
// +build integration
package rules_test
import (
@@ -45,6 +47,12 @@ func TestRules(t *testing.T) {
NoError(t, err, "expected no error, got %+v", err)
}
// check that testing context allows anything
{
ctxAdmin := context.WithValue(ctx, "testing", true)
Expect(rules.Allow, resources.With(ctxAdmin, db).Check("crm", "anything"), "testing context should allow anything")
}
// default (unset=deny), forbidden check ...:*
{
Expect(rules.Deny, resources.Check("messaging:channel:1", "update"), "messaging:channel:1 update - Deny")

View File

@@ -1,17 +1,16 @@
// +build unit
package store
import (
"bytes"
"io"
"testing"
"github.com/crusttech/crust/internal/test"
)
func TestStore(t *testing.T) {
assert := func(ok bool, format string, params ...interface{}) {
if !ok {
t.Fatalf(format, params...)
}
}
readerToString := func(r io.Reader) string {
b := new(bytes.Buffer)
b.ReadFrom(r)
@@ -19,63 +18,57 @@ func TestStore(t *testing.T) {
}
store, err := New("test")
assert(err == nil, "Unexpected error when creating store: %+v", err)
assert(store != nil, "Expected non-nil return for new store")
assert(store.Namespace() == "test", "Unexpected store namespace: test != %s", store.Namespace())
test.Assert(t, err == nil, "Unexpected error when creating store: %+v", err)
test.Assert(t, store != nil, "Expected non-nil return for new store")
test.Assert(t, store.Namespace() == "test", "Unexpected store namespace: test != %s", store.Namespace())
{
fn := store.Original(123, "jpg")
expected := "test/123.jpg"
assert(fn == expected, "Unexpected filename returned: %s != %s", expected, fn)
test.Assert(t, fn == expected, "Unexpected filename returned: %s != %s", expected, fn)
}
{
fn := store.Preview(123, "jpg")
expected := "test/123_preview.jpg"
assert(fn == expected, "Unexpected filename returned: %s != %s", expected, fn)
test.Assert(t, fn == expected, "Unexpected filename returned: %s != %s", expected, fn)
}
// write a file
{
buf := bytes.NewBuffer([]byte("This is a testing buffer"))
err := store.Save("test/123.jpg", buf)
assert(err == nil, "Error saving file, %+v", err)
test.Assert(t, err == nil, "Error saving file, %+v", err)
err = store.Save("test123/123.jpg", buf)
assert(err != nil, "Expected error when saving file outside of namespace")
test.Assert(t, err != nil, "Expected error when saving file outside of namespace")
}
// read a file
{
buf, err := store.Open("test/123.jpg")
assert(err == nil, "Unexpected error when reading file: %+v", err)
test.Assert(t, err == nil, "Unexpected error when reading file: %+v", err)
s := readerToString(buf)
assert(s == "This is a testing buffer", "Unexpected response when reading file: %s", s)
test.Assert(t, s == "This is a testing buffer", "Unexpected response when reading file: %s", s)
_, err = store.Open("test/1234.jpg")
assert(err != nil, "Expected error when opening non-existent file")
test.Assert(t, err != nil, "Expected error when opening non-existent file")
_, err = store.Open("test123/123.jpg")
assert(err != nil, "Expected error when opening file outside of namespace")
test.Assert(t, err != nil, "Expected error when opening file outside of namespace")
}
// delete a file
{
err := store.Remove("test/123.jpg")
assert(err == nil, "Unexpected error when removing file: %+v", err)
test.Assert(t, err == nil, "Unexpected error when removing file: %+v", err)
err = store.Remove("test/123.jpg")
assert(err != nil, "Expected error when removing missing file")
test.Assert(t, err != nil, "Expected error when removing missing file")
err = store.Remove("test123/123.jpg")
assert(err != nil, "Expected error when deleting file outside of namespace")
test.Assert(t, err != nil, "Expected error when deleting file outside of namespace")
}
}
func TestStoreCheckFunc(t *testing.T) {
assert := func(ok bool, format string, params ...interface{}) {
if !ok {
t.Fatalf(format, params...)
}
}
// Should not cause panic
assert((&store{}).check("") != nil, "Expecting an error to be returned on empty filename check")
test.Assert(t, (&store{}).check("") != nil, "Expecting an error to be returned on empty filename check")
}