github.com/shogo82148/goa-v1@v1.6.2/design/apidsl/test/runner_test.go (about) 1 package test 2 3 import ( 4 . "github.com/onsi/ginkgo" 5 . "github.com/onsi/gomega" 6 "github.com/shogo82148/goa-v1/design" 7 "github.com/shogo82148/goa-v1/design/apidsl" 8 "github.com/shogo82148/goa-v1/dslengine" 9 ) 10 11 // Global test definitions 12 const apiName = "API" 13 const apiDescription = "API description" 14 const resourceName = "R" 15 const resourceDescription = "R description" 16 const typeName = "T" 17 const typeDescription = "T description" 18 const mediaTypeIdentifier = "mt/json" 19 const mediaTypeDescription = "MT description" 20 21 var _ = apidsl.API(apiName, func() { 22 apidsl.Description(apiDescription) 23 }) 24 25 var _ = apidsl.Resource(resourceName, func() { 26 apidsl.Description(resourceDescription) 27 }) 28 29 var _ = apidsl.Type(typeName, func() { 30 apidsl.Description(typeDescription) 31 apidsl.Attribute("bar") 32 }) 33 34 var _ = apidsl.MediaType(mediaTypeIdentifier, func() { 35 apidsl.Description(mediaTypeDescription) 36 apidsl.Attributes(func() { apidsl.Attribute("foo") }) 37 apidsl.View("default", func() { apidsl.Attribute("foo") }) 38 }) 39 40 func init() { 41 dslengine.Run() 42 43 var _ = Describe("DSL execution", func() { 44 Context("with global DSL definitions", func() { 45 It("runs the DSL", func() { 46 Ω(dslengine.Errors).Should(BeEmpty()) 47 48 Ω(design.Design).ShouldNot(BeNil()) 49 Ω(design.Design.Name).Should(Equal(apiName)) 50 Ω(design.Design.Description).Should(Equal(apiDescription)) 51 52 Ω(design.Design.Resources).Should(HaveKey(resourceName)) 53 Ω(design.Design.Resources[resourceName]).ShouldNot(BeNil()) 54 Ω(design.Design.Resources[resourceName].Name).Should(Equal(resourceName)) 55 Ω(design.Design.Resources[resourceName].Description).Should(Equal(resourceDescription)) 56 57 Ω(design.Design.Types).Should(HaveKey(typeName)) 58 Ω(design.Design.Types[typeName]).ShouldNot(BeNil()) 59 Ω(design.Design.Types[typeName].TypeName).Should(Equal(typeName)) 60 Ω(design.Design.Types[typeName].Description).Should(Equal(typeDescription)) 61 62 Ω(design.Design.MediaTypes).Should(HaveKey(mediaTypeIdentifier)) 63 Ω(design.Design.MediaTypes[mediaTypeIdentifier]).ShouldNot(BeNil()) 64 Ω(design.Design.MediaTypes[mediaTypeIdentifier].Identifier).Should(Equal(mediaTypeIdentifier)) 65 Ω(design.Design.MediaTypes[mediaTypeIdentifier].Description).Should(Equal(mediaTypeDescription)) 66 }) 67 }) 68 }) 69 }