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) }