From 3d3bee3c395e7dedc0ddebb5db81644c85341224 Mon Sep 17 00:00:00 2001
From: ale <ale@incal.net>
Date: Sun, 5 Dec 2021 15:34:17 +0000
Subject: [PATCH] Add a test for DisableUser

---
 integrationtest/disable_user_test.go | 53 ++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)
 create mode 100644 integrationtest/disable_user_test.go

diff --git a/integrationtest/disable_user_test.go b/integrationtest/disable_user_test.go
new file mode 100644
index 00000000..7adb0b83
--- /dev/null
+++ b/integrationtest/disable_user_test.go
@@ -0,0 +1,53 @@
+package integrationtest
+
+import (
+	"testing"
+
+	as "git.autistici.org/ai3/accountserver"
+)
+
+func TestIntegration_DisableUser(t *testing.T) {
+	stop, _, c := startService(t)
+	defer stop()
+
+	username := "uno@investici.org"
+	err := c.request("/api/user/disable", &as.DisableUserRequest{
+		UserRequestBase: as.UserRequestBase{
+			RequestBase: as.RequestBase{
+				SSO: c.ssoTicket(username),
+			},
+			Username: username,
+		},
+	}, nil)
+	if err != nil {
+		t.Fatalf("DisableUser(): %v", err)
+	}
+
+	// Normal GetUser does not return the user anymore.
+	if _, err := c.getUser(username); err == nil {
+		t.Fatal("GetUser() returns user after deletion")
+	}
+
+	// We have to specify IncludeInactive to get it.
+	var user as.User
+	err = c.request("/api/user/get", &as.GetUserRequest{
+		UserRequestBase: as.UserRequestBase{
+			RequestBase: as.RequestBase{
+				SSO: c.ssoTicket(testAdminUser, testAdminGroup),
+			},
+			Username: username,
+		},
+		IncludeInactive: true,
+	}, &user)
+	if err != nil {
+		t.Fatalf("GetUser(include_inactive=true) error: %v", err)
+	}
+	if user.Status != as.UserStatusInactive {
+		t.Errorf("user status is not inactive: %s", user.Status)
+	}
+	for _, r := range user.Resources {
+		if r.Status != as.ResourceStatusInactive {
+			t.Errorf("resource %s status is not inactive: %s", r.ID.String(), r.Status)
+		}
+	}
+}
-- 
GitLab