From 280b65fe4d8edfe2130ea056c8511c15558d17b3 Mon Sep 17 00:00:00 2001 From: Hitoshi Mitake Date: Thu, 2 Feb 2017 13:34:59 +0900 Subject: [PATCH] auth: add a test case for recoverying from snapshot --- auth/store_test.go | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/auth/store_test.go b/auth/store_test.go index 72ea66b07..fc9e41ee2 100644 --- a/auth/store_test.go +++ b/auth/store_test.go @@ -496,6 +496,41 @@ func TestIsAdminPermitted(t *testing.T) { } } +func TestRecoverFromSnapshot(t *testing.T) { + as, _ := setupAuthStore(t) + + ua := &pb.AuthUserAddRequest{Name: "foo"} + _, err := as.UserAdd(ua) // add an existing user + if err == nil { + t.Fatalf("expected %v, got %v", ErrUserAlreadyExist, err) + } + if err != ErrUserAlreadyExist { + t.Fatalf("expected %v, got %v", ErrUserAlreadyExist, err) + } + + ua = &pb.AuthUserAddRequest{Name: ""} + _, err = as.UserAdd(ua) // add a user with empty name + if err != ErrUserEmpty { + t.Fatal(err) + } + + as.Close() + + as2 := NewAuthStore(as.be, dummyIndexWaiter) + + if !as2.isAuthEnabled() { + t.Fatal("recovering authStore from existing backend failed") + } + + ul, err := as.UserList(&pb.AuthUserListRequest{}) + if err != nil { + t.Fatal(err) + } + if !contains(ul.Users, "root") { + t.Errorf("expected %v in %v", "root", ul.Users) + } +} + func contains(array []string, str string) bool { for _, s := range array { if s == str {