From afc14717e37728cac37a7b21ab66699ce68f21c0 Mon Sep 17 00:00:00 2001 From: Joakim Olsson Date: Tue, 31 Dec 2019 12:58:20 +0100 Subject: [PATCH] chore: add tests --- client_test.go | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/client_test.go b/client_test.go index 2ceb739..e2648ee 100644 --- a/client_test.go +++ b/client_test.go @@ -16,6 +16,43 @@ func TestPrivilegeHandler_Process_InvalidType(t *testing.T) { assert.False(t, result) } +func TestPrivilegeHandler_Process_PrivilegeRemoved(t *testing.T) { + handler := New(WithBaseURL("base")) + + result := handler.Process(&PrivilegeAdded{ + Email: "jim@example.org", + CompanyID: "abc-123", + Admin: true, + Company: true, + Consumer: true, + Time: true, + Invoicing: true, + Accounting: true, + Supplier: true, + }) + assert.True(t, result) + + companies := handler.CompaniesByUser("jim@example.org", func(privileges CompanyPrivileges) bool { + return privileges.Admin + }) + + assert.Equal(t, []string{"abc-123"}, companies) + + result = handler.Process(&PrivilegeRemoved{ + Email: "jim@example.org", + CompanyID: "abc-123", + Name: "name", + RegistrationNumber: "reg-no", + }) + assert.True(t, result) + + companies = handler.CompaniesByUser("jim@example.org", func(privileges CompanyPrivileges) bool { + return privileges.Admin + }) + + assert.Empty(t, companies) +} + func TestPrivilegeHandler_GetCompanies_Email_Not_Found(t *testing.T) { handler := New(WithBaseURL("base")) @@ -95,6 +132,38 @@ func TestPrivilegeHandler_GetCompanies_Company_With_Admin_Access_Found(t *testin assert.Equal(t, []string{"abc-123"}, companies) } +func TestPrivilegeHandler_IsAllowed_Return_False_If_No_Privileges(t *testing.T) { + handler := New(WithBaseURL("base")) + + result := handler.IsAllowed("jim@example.org", "abc-123", func(privileges CompanyPrivileges) bool { + return privileges.Company + }) + + assert.False(t, result) +} + +func TestPrivilegeHandler_IsAllowed_Return_True_If_Privilege_Exists(t *testing.T) { + handler := New(WithBaseURL("base")) + + handler.Process(&PrivilegeAdded{ + Email: "jim@example.org", + CompanyID: "abc-123", + Admin: false, + Company: true, + Consumer: false, + Time: false, + Invoicing: false, + Accounting: false, + Supplier: false, + }) + + result := handler.IsAllowed("jim@example.org", "abc-123", func(privileges CompanyPrivileges) bool { + return privileges.Company + }) + + assert.True(t, result) +} + func TestPrivilegeHandler_Fetch_Error_Response(t *testing.T) { server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(500)