Expect(env).To(Equal(env1)) }) }) Context("When it isn't registered", func() { It("Should return a false ok", func() { _, ok := manager.GetEnvironment(schemaID2) Expect(ok).To(BeFalse()) }) }) }) Describe("Unregistering an environment", func() { Context("When it is registered", func() { It("Should unregister it", func() { Expect(manager.UnRegisterEnvironment(schemaID1)).To(Succeed()) }) }) Context("When it isn't registered", func() { It("Should return an error", func() { err := manager.UnRegisterEnvironment(schemaID2) Expect(err).To(MatchError("No environment registered for this schema")) }) }) }) Describe("Executing a sequence of operations", func() { Context("A typical sequence", func() { It("Should do what expected", func() { By("Getting a registered environment")
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() Expect(err).ToNot(HaveOccurred(), "Failed to create transaction.") environmentManager.UnRegisterEnvironment(schemaID) defer tx.Close() for _, schema := range schema.GetManager().Schemas() { if whitelist[schema.ID] { continue } err = clearTable(tx, schema) Expect(err).ToNot(HaveOccurred(), "Failed to clear table.") } err = tx.Commit() Expect(err).ToNot(HaveOccurred(), "Failed to commite transaction.") }) Describe("Using gohan_db_* builtins", func() { BeforeEach(func() { schemaID = "network"