test server put, tree, get
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"path"
|
||||
@@ -98,3 +100,64 @@ func TestServerRoutes(t *testing.T) {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestServerPutTreeGetFile(t *testing.T) {
|
||||
server := NewServer(t.TempDir())
|
||||
if err := server.Routes(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
server.tree().Put("my pid", Branch{})
|
||||
var id string
|
||||
t.Run("post", func(t *testing.T) {
|
||||
r := httptest.NewRequest(http.MethodPost, "/", strings.NewReader("body"))
|
||||
r.Header.Set("Title", "my title")
|
||||
r.Header.Set("PID", "my pid")
|
||||
w := httptest.NewRecorder()
|
||||
if err := server.apiV0FilesHandler(w, r); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if w.Code != http.StatusOK {
|
||||
t.Fatal(w)
|
||||
}
|
||||
var resp struct {
|
||||
Data struct {
|
||||
FilePath string `json:"filePath"`
|
||||
} `json:"data"`
|
||||
}
|
||||
if err := json.NewDecoder(w.Body).Decode(&resp); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
id = path.Base(resp.Data.FilePath)
|
||||
})
|
||||
t.Run("tree", func(t *testing.T) {
|
||||
r := httptest.NewRequest(http.MethodGet, "/", nil)
|
||||
w := httptest.NewRecorder()
|
||||
if err := server.apiV0TreeHandler(w, r); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if w.Code != http.StatusOK {
|
||||
t.Fatal(w)
|
||||
}
|
||||
if !bytes.Contains(w.Body.Bytes(), []byte(`{"Title":"my title","Deleted":false,"Updated":"`)) {
|
||||
t.Fatal(w)
|
||||
}
|
||||
})
|
||||
t.Run("get", func(t *testing.T) {
|
||||
r := httptest.NewRequest(http.MethodGet, "/"+id, nil)
|
||||
w := httptest.NewRecorder()
|
||||
if err := server.apiV0FilesIDHandler(w, r); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if w.Code != http.StatusOK {
|
||||
t.Fatal(w)
|
||||
}
|
||||
if !bytes.Contains(w.Body.Bytes(), []byte(`body`)) {
|
||||
t.Fatal(w)
|
||||
}
|
||||
if title := w.Header().Get("Title"); title != "my title" {
|
||||
t.Fatal(title)
|
||||
} else if pid := w.Header().Get("PID"); pid != "my pid" {
|
||||
t.Fatal(pid)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user