mirror of https://github.com/fatedier/frp
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.4 KiB
55 lines
1.4 KiB
9 months ago
|
package basic
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"io"
|
||
|
"net/http"
|
||
|
|
||
|
"github.com/onsi/ginkgo/v2"
|
||
|
"github.com/tidwall/gjson"
|
||
|
|
||
|
"github.com/fatedier/frp/test/e2e/framework"
|
||
|
"github.com/fatedier/frp/test/e2e/framework/consts"
|
||
|
)
|
||
|
|
||
|
var _ = ginkgo.Describe("[Feature: Annotations]", func() {
|
||
|
f := framework.NewDefaultFramework()
|
||
|
|
||
|
ginkgo.It("Set Proxy Annotations", func() {
|
||
|
webPort := f.AllocPort()
|
||
|
|
||
|
serverConf := consts.DefaultServerConfig + fmt.Sprintf(`
|
||
|
webServer.port = %d
|
||
|
`, webPort)
|
||
|
|
||
|
p1Port := f.AllocPort()
|
||
|
|
||
|
clientConf := consts.DefaultClientConfig + fmt.Sprintf(`
|
||
|
[[proxies]]
|
||
|
name = "p1"
|
||
|
type = "tcp"
|
||
|
localPort = {{ .%s }}
|
||
|
remotePort = %d
|
||
|
[proxies.annotations]
|
||
|
"frp.e2e.test/foo" = "value1"
|
||
|
"frp.e2e.test/bar" = "value2"
|
||
|
`, framework.TCPEchoServerPort, p1Port)
|
||
|
|
||
|
f.RunProcesses([]string{serverConf}, []string{clientConf})
|
||
|
|
||
|
framework.NewRequestExpect(f).Port(p1Port).Ensure()
|
||
|
|
||
|
// check annotations in frps
|
||
|
resp, err := http.Get(fmt.Sprintf("http://127.0.0.1:%d/api/proxy/tcp/%s", webPort, "p1"))
|
||
|
framework.ExpectNoError(err)
|
||
|
framework.ExpectEqual(resp.StatusCode, 200)
|
||
|
defer resp.Body.Close()
|
||
|
content, err := io.ReadAll(resp.Body)
|
||
|
framework.ExpectNoError(err)
|
||
|
|
||
|
annotations := gjson.Get(string(content), "conf.annotations").Map()
|
||
|
framework.ExpectEqual("value1", annotations["frp.e2e.test/foo"].String())
|
||
|
framework.ExpectEqual("value2", annotations["frp.e2e.test/bar"].String())
|
||
|
})
|
||
|
})
|