From 860d0fd5a65451e86baba12e445a941a790ebc53 Mon Sep 17 00:00:00 2001 From: Roland Osborne Date: Sun, 16 Jan 2022 22:46:55 -0800 Subject: [PATCH] testing duplicate handles --- net/server/internal/addAccount_test.go | 47 +++++++++++++++++++++++++- net/server/internal/store/schema.go | 1 + 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/net/server/internal/addAccount_test.go b/net/server/internal/addAccount_test.go index b69870d6..d3020880 100644 --- a/net/server/internal/addAccount_test.go +++ b/net/server/internal/addAccount_test.go @@ -75,8 +75,53 @@ func TestAccount(t *testing.T) { dec = json.NewDecoder(resp.Body) var profile Profile dec.Decode(&profile) - if profile.Guid == "" { + if profile.Handle != "user" { t.Errorf("invalid profile") return } + + // acquire new token for creating accounts + auth = base64.StdEncoding.EncodeToString([]byte("admin:pass")) + r = httptest.NewRequest("POST", "/admin/accounts", nil) + r.Header.Add("Authorization","Basic " + auth) + w = httptest.NewRecorder() + AddNodeAccount(w, r) + resp = w.Result() + dec = json.NewDecoder(resp.Body) + dec.Decode(&token) + if resp.StatusCode != 200 { + t.Errorf("failed to create account") + return + } + + // check if username is available + r = httptest.NewRequest("GET", "/account/claimable?username=user", nil) + r.Header.Add("Authorization","Bearer " + token) + w = httptest.NewRecorder() + GetAccountUsername(w, r) + resp = w.Result() + if resp.StatusCode != 200 { + t.Errorf("invalid token value") + return + } + dec = json.NewDecoder(resp.Body) + dec.Decode(&available) + if available { + t.Errorf("username duplicate available") + return + } + + // create account + auth = base64.StdEncoding.EncodeToString([]byte("user:pass")) + r = httptest.NewRequest("GET", "/account/profile", nil) + r.Header.Add("Credentials","Basic " + auth) + r.Header.Add("Authorization","Bearer " + token) + w = httptest.NewRecorder() + AddAccount(w, r) + resp = w.Result() + if resp.StatusCode == 200 { + t.Errorf("duplicate handle set") + return + } + } diff --git a/net/server/internal/store/schema.go b/net/server/internal/store/schema.go index 361f2593..9ce57f38 100644 --- a/net/server/internal/store/schema.go +++ b/net/server/internal/store/schema.go @@ -65,6 +65,7 @@ type Account struct { DialogueRevision int64 `gorm:"not null;default:1"` InsightRevision uint64 `gorm:"not null;default:1"` Created int64 `gorm:"autoCreateTime"` + Disabled bool `gorm:"not null;default:false"` Apps []App }