-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathfs_test.go
55 lines (49 loc) · 1.69 KB
/
fs_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package plaud
import (
"context"
"io"
"net/http"
"net/http/httptest"
"os"
"plaudern/utils"
"testing"
)
func TestStaticFiles(t *testing.T) {
const testFolder string = "./test_files"
server := New(":8000")
testRouter := NewRouter("/")
testRouter.ServeDir("/", http.Dir(testFolder))
testRouter.ServeDir("/test", http.Dir(testFolder))
server.Register(testRouter)
req := httptest.NewRequestWithContext(context.Background(), http.MethodGet, "/", io.Reader(nil))
res := httptest.NewRecorder()
server.server.ServeHTTP(res, req)
utils.AssertEq(t, http.StatusOK, res.Code)
fileContent, err := os.ReadFile(testFolder + "/index.html")
utils.AssertNoErr(t, err)
utils.AssertEq(t, res.Body.String(), string(fileContent))
//
req = httptest.NewRequestWithContext(context.Background(), http.MethodGet, "/test/", io.Reader(nil))
res = httptest.NewRecorder()
server.server.ServeHTTP(res, req)
utils.AssertEq(t, http.StatusOK, res.Code)
utils.AssertNoErr(t, err)
utils.AssertEq(t, res.Body.String(), string(fileContent))
}
func TestNestedRouterStaticFiles(t *testing.T) {
const testFolder string = "./test_files"
server := New(":8000")
testRouter := NewRouter("/test")
childRouter := NewRouter("/test2")
childRouter.ServeDir("/", http.Dir(testFolder))
testRouter.Handle("/", childRouter)
server.Register(testRouter)
//TODO:fix that trailing '/'
req := httptest.NewRequestWithContext(context.Background(), http.MethodGet, "/test/test2/", io.Reader(nil))
res := httptest.NewRecorder()
server.server.ServeHTTP(res, req)
utils.AssertEq(t, http.StatusOK, res.Code)
fileContent, err := os.ReadFile(testFolder + "/index.html")
utils.AssertNoErr(t, err)
utils.AssertEq(t, res.Body.String(), string(fileContent))
}