plugins/tests/discover_test.go
Star b6bb3098bc update dao
many other updates
2024-03-24 12:28:02 +08:00

53 lines
1.3 KiB
Go

package tests
import (
"apigo.cloud/git/apigo/gojs"
_ "apigo.cloud/git/apigo/plugins/discover"
"github.com/ssgo/discover"
"github.com/ssgo/redis"
"github.com/ssgo/s"
"testing"
)
func TestDiscover(t *testing.T) {
rdServer := StartRedis("16378")
defer rdServer.Close()
rd := redis.GetRedis("redis://localhost:16378", nil)
rd.HSET("echo", "localhost:11223", 100)
rd.SET("echo_localhost:11223", "1")
s.Register(0, "/echo", func(in map[string]interface{}) map[string]interface{} {
return in
}, "")
s.Config.Listen = "11223,h2c"
discover.Config.Registry = "redis://localhost:16378"
discover.Config.Calls = map[string]string{"echo": ""}
as := s.AsyncStart()
defer as.Stop()
// discover.Start("") // if not use ssgo/s, manual start discover
rt := gojs.New(nil)
defer rt.Close()
err := rt.Exec(`
import discover from 'apigo.cloud/git/apigo/plugins/discover'
let echoSrv = discover.fetch('echo')
`)
Test(t, "fetch", err == nil, err)
r, err := rt.Run(`
let r = echoSrv.get('/echo?aaa=111')
if(r.aaa !== '111') throw new Error('aaa is '+r.aaa+' not 111')
return true
`)
Test(t, "get", r == true && err == nil, r, err)
r, err = rt.Run(`
let r = echoSrv.post('/echo', {aaa:111})
if(r.aaa !== 111) throw new Error('aaa is '+r.aaa+' not 111')
return true
`)
Test(t, "post", r == true && err == nil, r, err)
}