var dsl func() var method string var path string var optionsHandler goa.Handler var service *goa.GracefulApplication var url string portIndex := 1 JustBeforeEach(func() { goa.Log.SetHandler(log15.DiscardHandler()) service = goa.NewGraceful("").(*goa.GracefulApplication) spec, err := cors.New(dsl) Ω(err).ShouldNot(HaveOccurred()) service.Use(cors.Middleware(spec)) router := service.HTTPHandler().(*httprouter.Router) h := func(ctx *goa.Context) error { return ctx.Respond(200, nil) } router.Handle(method, path, goa.NewHTTPRouterHandle(service, "", "", h)) router.Handle("OPTIONS", path, goa.NewHTTPRouterHandle(service, "", "", optionsHandler)) cors.MountPreflightController(service, spec) portIndex++ port := 54511 + portIndex url = fmt.Sprintf("http://localhost:%d", port) go service.ListenAndServe(fmt.Sprintf(":%d", port)) // ugh - does anyone have a better idea? we need to wait for the server // to start listening or risk tests failing because sendind requests too // early. time.Sleep(time.Duration(100) * time.Millisecond) }) AfterEach(func() {