diff options
author | Ben Morrison <ben@gbmor.dev> | 2019-06-05 15:36:23 -0400 |
---|---|---|
committer | Ben Morrison <ben@gbmor.dev> | 2019-06-05 15:36:23 -0400 |
commit | fd43c61bd128ad77b22db0537a9a4eb58490b0b5 (patch) | |
tree | 4c5fa7b33fadbf7c3e14e69b7d68ce280bc3810a /svc/post_test.go | |
parent | 4658fe82be3e9d95e93fa5c7c7ca64a15cf2f1a1 (diff) | |
download | getwtxt-fd43c61bd128ad77b22db0537a9a4eb58490b0b5.tar.gz |
moved bulk of code to its own package to clean up source tree
Diffstat (limited to 'svc/post_test.go')
-rw-r--r-- | svc/post_test.go | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/svc/post_test.go b/svc/post_test.go new file mode 100644 index 0000000..c25efe3 --- /dev/null +++ b/svc/post_test.go @@ -0,0 +1,77 @@ +package svc // import github.com/getwtxt/getwtxt/svc + +import ( + "fmt" + "net/http" + "net/http/httptest" + "net/url" + "strings" + "testing" + + "github.com/getwtxt/registry" +) + +var apiPostUserCases = []struct { + name string + nick string + uri string + wantErr bool +}{ + { + name: "Known Good User", + nick: "gbmor", + uri: "https://gbmor.dev/twtxt.txt", + wantErr: false, + }, + { + name: "Missing URI", + nick: "missinguri", + uri: "", + wantErr: true, + }, + { + name: "Missing Nickname", + nick: "", + uri: "https://example.com/twtxt.txt", + wantErr: true, + }, + { + name: "Missing URI and Nickname", + nick: "", + uri: "", + wantErr: true, + }, +} + +func Test_apiPostUser(t *testing.T) { + initTestConf() + portnum := fmt.Sprintf(":%v", confObj.Port) + twtxtCache = registry.NewIndex() + + for _, tt := range apiPostUserCases { + t.Run(tt.name, func(t *testing.T) { + params := url.Values{} + params.Set("url", tt.uri) + params.Set("nickname", tt.nick) + + req, err := http.NewRequest("POST", "https://localhost"+portnum+"/api/plain/users", strings.NewReader(params.Encode())) + if err != nil { + t.Errorf("%v\n", err) + } + + req.Header.Add("Content-Type", "application/x-www-form-urlencoded") + rr := httptest.NewRecorder() + apiEndpointPOSTHandler(rr, req) + + if !tt.wantErr { + if rr.Code != http.StatusOK { + t.Errorf("Received unexpected non-200 response: %v\n", rr.Code) + } + } else { + if rr.Code != http.StatusBadRequest { + t.Errorf("Expected 400 Bad Request, but received: %v\n", rr.Code) + } + } + }) + } +} |