修复在 proxy 时重定向的问题

This commit is contained in:
ExplodingDragon
2025-05-15 20:25:12 +08:00
parent 70706fe969
commit b8cf863f18
5 changed files with 52 additions and 7 deletions

View File

@@ -12,13 +12,15 @@ func Test_proxy(t *testing.T) {
hs := core.NewServer()
defer server.Close()
defer hs.Close()
hs.Add("/test/data", "hello data")
hs.Add("/test/", "hello proxy")
server.AddFile("org1/repo1/gh-pages/index.html", "hello world")
server.AddFile("org1/repo1/gh-pages/.pages.yaml", `
proxy:
/api: %s/test
`, hs.URL)
/abi: %s/
`, hs.URL, hs.URL)
data, _, err := server.OpenFile("https://org1.example.com/repo1/")
assert.NoError(t, err)
assert.Equal(t, "hello world", string(data))
@@ -26,4 +28,40 @@ proxy:
data, _, err = server.OpenFile("https://org1.example.com/repo1/api")
assert.NoError(t, err)
assert.Equal(t, "hello proxy", string(data))
data, _, err = server.OpenFile("https://org1.example.com/repo1/api/data")
assert.NoError(t, err)
assert.Equal(t, "hello data", string(data))
_, resp, err := server.OpenFile("https://org1.example.com/repo1/abi/data")
assert.Equal(t, resp.StatusCode, 404)
}
func Test_cname_proxy(t *testing.T) {
server := core.NewDefaultTestServer()
hs := core.NewServer()
defer server.Close()
defer hs.Close()
hs.Add("/test/", "hello proxy")
server.AddFile("org1/repo1/gh-pages/index.html", "hello world")
server.AddFile("org1/repo1/gh-pages/.pages.yaml", `
alias:
- www.example.org
proxy:
/api: %s/test
`, hs.URL)
_, resp, err := server.OpenFile("https://org1.example.com/repo1/")
assert.Equal(t, resp.StatusCode, 302)
assert.Equal(t, resp.Header.Get("Location"), "https://www.example.org/")
data, resp, err := server.OpenFile("https://www.example.org")
assert.NoError(t, err)
assert.Equal(t, "hello world", string(data))
_, resp, err = server.OpenFile("https://org1.example.com/repo1/api")
assert.Equal(t, resp.StatusCode, 302)
assert.Equal(t, resp.Header.Get("Location"), "https://www.example.org/api")
data, resp, err = server.OpenFile("https://www.example.org/api")
assert.NoError(t, err)
assert.Equal(t, "hello proxy", string(data))
}