diff --git a/tests/messaging/permissions_delete_test.go b/tests/messaging/permissions_delete_test.go index e65f0c9a4..2d4908e92 100644 --- a/tests/messaging/permissions_delete_test.go +++ b/tests/messaging/permissions_delete_test.go @@ -1,9 +1,36 @@ package messaging import ( + "fmt" + "net/http" "testing" + + "github.com/cortezaproject/corteza-server/internal/permissions" + "github.com/cortezaproject/corteza-server/tests/helpers" ) func TestPermissionsDelete(t *testing.T) { - t.Skip("to be implemented") + h := newHelper(t) + + h.a.Empty(p.FindRulesByRoleID(h.roleID)) + + h.allow("messaging", "access") + h.allow("messaging", "grant") + h.deny("messaging", "channel.group.create") + + h.a.Len(p.FindRulesByRoleID(h.roleID), 3) + + h.apiInit(). + Delete(fmt.Sprintf("/permissions/%d/rules", h.roleID)). + Expect(t). + Status(http.StatusOK). + Assert(helpers.AssertNoErrors). + End() + + // Make sure everything is deleted + rr, _ := p.FindRulesByRoleID(h.roleID).Filter(func(r *permissions.Rule) (b bool, e error) { + return r.Access != permissions.Inherit, nil + }) + + h.a.Empty(rr) } diff --git a/tests/messaging/permissions_effective_test.go b/tests/messaging/permissions_effective_test.go index d328d9aef..6ed0f9444 100644 --- a/tests/messaging/permissions_effective_test.go +++ b/tests/messaging/permissions_effective_test.go @@ -1,9 +1,21 @@ package messaging import ( + "net/http" "testing" + + "github.com/cortezaproject/corteza-server/tests/helpers" ) func TestPermissionsEffective(t *testing.T) { - t.Skip("to be implemented") + h := newHelper(t) + h.allow("messaging", "access") + h.deny("messaging", "channel.group.create") + + h.apiInit(). + Get("/permissions/effective"). + Expect(t). + Status(http.StatusOK). + Assert(helpers.AssertNoErrors). + End() } diff --git a/tests/messaging/permissions_list_test.go b/tests/messaging/permissions_list_test.go index 83cd2f322..906d08be2 100644 --- a/tests/messaging/permissions_list_test.go +++ b/tests/messaging/permissions_list_test.go @@ -1,9 +1,22 @@ package messaging import ( + "net/http" "testing" + + jsonpath "github.com/steinfletcher/apitest-jsonpath" + + "github.com/cortezaproject/corteza-server/tests/helpers" ) func TestPermissionsList(t *testing.T) { - t.Skip("to be implemented") + h := newHelper(t) + + h.apiInit(). + Get("/permissions/"). + Expect(t). + Status(http.StatusOK). + Assert(helpers.AssertNoErrors). + Assert(jsonpath.Present(`$.response[? @.resource=="messaging"]`)). + End() } diff --git a/tests/messaging/permissions_read_test.go b/tests/messaging/permissions_read_test.go index b07daaa1b..27dc982b0 100644 --- a/tests/messaging/permissions_read_test.go +++ b/tests/messaging/permissions_read_test.go @@ -1,9 +1,23 @@ package messaging import ( + "fmt" + "net/http" "testing" + + "github.com/cortezaproject/corteza-server/tests/helpers" ) func TestPermissionsRead(t *testing.T) { - t.Skip("to be implemented") + h := newHelper(t) + h.allow("messaging", "access") + h.allow("messaging", "grant") + h.deny("messaging", "channel.group.create") + + h.apiInit(). + Get(fmt.Sprintf("/permissions/%d/rules", h.roleID)). + Expect(t). + Status(http.StatusOK). + Assert(helpers.AssertNoErrors). + End() } diff --git a/tests/messaging/permissions_update_test.go b/tests/messaging/permissions_update_test.go index 4009d00d9..38d96c59e 100644 --- a/tests/messaging/permissions_update_test.go +++ b/tests/messaging/permissions_update_test.go @@ -1,9 +1,24 @@ package messaging import ( + "fmt" + "net/http" "testing" + + "github.com/cortezaproject/corteza-server/tests/helpers" ) func TestPermissionsUpdate(t *testing.T) { - t.Skip("to be implemented") + h := newHelper(t) + h.allow("messaging", "access") + h.allow("messaging", "grant") + h.deny("messaging", "channel.group.create") + + h.apiInit(). + Patch(fmt.Sprintf("/permissions/%d/rules", h.roleID)). + JSON(`{"rules":[{"resource":"messaging","operation":"channel.group.create","access":"allow"}]}`). + Expect(t). + Status(http.StatusOK). + Assert(helpers.AssertNoErrors). + End() }