diff --git a/internal/mail/mail_test.go b/internal/mail/mail_test.go index 857cf351b..70bb55a36 100644 --- a/internal/mail/mail_test.go +++ b/internal/mail/mail_test.go @@ -1,3 +1,5 @@ +// +build unit + package mail import ( diff --git a/internal/rules/main_test.go b/internal/rules/main_test.go index 371b1e704..f872d44ee 100644 --- a/internal/rules/main_test.go +++ b/internal/rules/main_test.go @@ -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) diff --git a/internal/rules/resource_test.go b/internal/rules/resource_test.go index 07f817bcc..fb5732858 100644 --- a/internal/rules/resource_test.go +++ b/internal/rules/resource_test.go @@ -1,3 +1,5 @@ +// +build unit + package rules import ( diff --git a/internal/rules/resources_test.go b/internal/rules/resources_test.go index d569b56af..059210459 100644 --- a/internal/rules/resources_test.go +++ b/internal/rules/resources_test.go @@ -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") diff --git a/internal/store/store_test.go b/internal/store/store_test.go index 7147ab15c..61d270440 100644 --- a/internal/store/store_test.go +++ b/internal/store/store_test.go @@ -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") }