github.com/liamawhite/cli-with-i18n@v6.32.1-0.20171122084555-dede0a5c3448+incompatible/integration/plugin/runner_test.go (about)

     1  package plugin
     2  
     3  import (
     4  	"os"
     5  
     6  	"github.com/liamawhite/cli-with-i18n/integration/helpers"
     7  	. "github.com/onsi/ginkgo"
     8  	. "github.com/onsi/gomega"
     9  	. "github.com/onsi/gomega/gbytes"
    10  	. "github.com/onsi/gomega/gexec"
    11  )
    12  
    13  var _ = Describe("running plugins", func() {
    14  	Describe("panic handling", func() {
    15  		BeforeEach(func() {
    16  			Eventually(helpers.CF("install-plugin", "-f", panicTestPluginPath)).Should(Exit(0))
    17  		})
    18  
    19  		It("will exit 1 if the plugin panics", func() {
    20  			Eventually(helpers.CF("freak-out")).Should(Exit(1))
    21  		})
    22  	})
    23  
    24  	Describe("when running plugin commands while CF_HOME is set", func() {
    25  		Context("when CF_PLUGIN_HOME is unset", func() {
    26  			BeforeEach(func() {
    27  				Expect(os.Setenv("CF_PLUGIN_HOME", "")).NotTo(HaveOccurred())
    28  			})
    29  
    30  			Context("when a plugin is installed", func() {
    31  				BeforeEach(func() {
    32  					installTestPlugin()
    33  				})
    34  
    35  				AfterEach(func() {
    36  					uninstallTestPlugin()
    37  				})
    38  
    39  				It("lists the installed plugins", func() {
    40  					session := helpers.CF("plugins")
    41  					Eventually(session).Should(Say("Username"))
    42  					Eventually(session).Should(Exit(0))
    43  				})
    44  
    45  				It("is able to run an installed plugin command", func() {
    46  					confirmTestPluginOutput("Username", "admin")
    47  				})
    48  			})
    49  		})
    50  
    51  		Context("when CF_PLUGIN_HOME is set", func() {
    52  			Context("when a plugin is installed", func() {
    53  				BeforeEach(func() {
    54  					installTestPlugin()
    55  				})
    56  
    57  				AfterEach(func() {
    58  					uninstallTestPlugin()
    59  				})
    60  
    61  				It("lists the installed plugins", func() {
    62  					session := helpers.CF("plugins")
    63  					Eventually(session).Should(Say("TestPluginCommandWithAlias"))
    64  					Eventually(session).Should(Exit(0))
    65  				})
    66  
    67  				It("can call a command by its alias", func() {
    68  					confirmTestPluginOutput("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", "You called Test Plugin Command With Alias!")
    69  				})
    70  			})
    71  		})
    72  	})
    73  })