fix(internal): test suite updates
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
// +build unit
|
||||
|
||||
package mail
|
||||
|
||||
import (
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
// +build unit
|
||||
|
||||
package rules
|
||||
|
||||
import (
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user