예제 #1
0
		schemaID2 = "Dumbledore"
	)
	var (
		env1    extension.Environment
		env2    extension.Environment
		manager *extension.Manager
	)

	BeforeEach(func() {
		env1 = otto.NewEnvironment(testDB1, &middleware.FakeIdentity{})
		env2 = otto.NewEnvironment(testDB2, &middleware.FakeIdentity{})
	})

	JustBeforeEach(func() {
		manager = extension.GetManager()
		Expect(manager.RegisterEnvironment(schemaID1, env1)).To(Succeed())
	})

	AfterEach(func() {
		extension.ClearManager()
	})

	Describe("Registering environments", func() {
		Context("When it isn't registered", func() {
			It("Should register it", func() {
				Expect(manager.RegisterEnvironment(schemaID2, env2)).To(Succeed())
			})
		})

		Context("When it is registered", func() {
			It("Should return an error", func() {
예제 #2
0
파일: otto_test.go 프로젝트: nati/gohan
			path = currentSchema.GetPluralURL()

			policy, role := manager.PolicyValidate(action, path, auth)
			Expect(policy).NotTo(BeNil())
			context["policy"] = policy
			context["role"] = role
			context["tenant_id"] = auth.TenantID()
			context["tenant_name"] = auth.TenantName()
			context["auth_token"] = auth.AuthToken()
			context["catalog"] = auth.Catalog()
			context["auth"] = auth
			context["identity_service"] = &middleware.FakeIdentity{}

			env = otto.NewEnvironment(testDB, &middleware.FakeIdentity{})
			environmentManager.RegisterEnvironment(schemaID, env)
			extensions = []*schema.Extension{}
			for event, javascript := range events {
				extension, err := schema.NewExtension(map[string]interface{}{
					"id":   event + "_extension",
					"code": `gohan_register_handler("` + event + `", function(context) {` + javascript + `});`,
					"path": path,
				})
				Expect(err).ToNot(HaveOccurred())
				extensions = append(extensions, extension)
			}
			Expect(env.LoadExtensionsForPath(extensions, path)).To(Succeed())
		})

		AfterEach(func() {
			tx, err := testDB.Begin()