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() {
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()