var _ = a.API("alm", func() { a.Title("ALMighty: One to rule them all") a.Description("The next big thing") a.Version("1.0") a.Host("almighty.io") a.Scheme("http") a.BasePath("/api") a.Consumes("application/json") a.Produces("application/json") a.License(func() { a.Name("Apache License Version 2.0") a.URL("http://www.apache.org/licenses/LICENSE-2.0") }) a.Origin("/[.*almighty.io|localhost]/", func() { a.Methods("GET", "POST", "PUT", "PATCH", "DELETE") a.Headers("X-Request-Id", "Content-Type", "Authorization") a.MaxAge(600) a.Credentials() }) a.Trait("jsonapi-media-type", func() { a.ContentType("application/vnd.api+json") }) a.JWTSecurity("jwt", func() { a.Description("JWT Token Auth") a.TokenURL("/api/login/authorize") a.Header("Authorization") }) a.ResponseTemplate(d.Created, func(pattern string) { a.Description("Resource created") a.Status(201) a.Headers(func() { a.Header("Location", d.String, "href to created resource", func() { a.Pattern(pattern) }) }) }) })
os.Args = []string{"goagen", "--out=" + testPkg.Abs(), "--design=foo", "--version=" + version.String()} }) JustBeforeEach(func() { files, genErr = genschema.Generate() }) AfterEach(func() { workspace.Delete() }) Context("with a dummy API", func() { BeforeEach(func() { dslengine.Reset() apidsl.API("test api", func() { apidsl.Title("dummy API with no resource") apidsl.Description("I told you it's dummy") }) dslengine.Run() }) It("generates a dummy schema", func() { Ω(genErr).Should(BeNil()) Ω(files).Should(HaveLen(2)) content, err := ioutil.ReadFile(filepath.Join(testPkg.Abs(), "schema", "schema.json")) Ω(err).ShouldNot(HaveOccurred()) Ω(len(strings.Split(string(content), "\n"))).Should(BeNumerically("==", 1)) var s genschema.JSONSchema err = json.Unmarshal(content, &s) Ω(err).ShouldNot(HaveOccurred()) }) })