testcmd.RunCommand(cmd, []string{"my-app"}, requirementsFactory) Expect(testcmd.CommandDidPassRequirements).To(BeTrue()) }) }) Describe("scaling an app", func() { BeforeEach(func() { app = maker.NewApp(maker.Overrides{"name": "my-app", "guid": "my-app-guid"}) app.InstanceCount = 42 app.DiskQuota = 1024 app.Memory = 256 requirementsFactory.Application = app appRepo.UpdateAppResult = app }) Context("when no flags are specified", func() { It("prints a description of the app's limits", func() { testcmd.RunCommand(cmd, []string{"my-app"}, requirementsFactory) Expect(ui.Outputs).To(ContainSubstrings( []string{"Showing", "my-app", "my-org", "my-space", "my-user"}, []string{"OK"}, []string{"memory", "256M"}, []string{"disk", "1G"}, []string{"instances", "42"}, )) Expect(ui.Outputs).ToNot(ContainSubstrings([]string{"Scaling", "my-app", "my-org", "my-space", "my-user"}))
}) It("warns the user when the app is already stopped", func() { runCommand("my-app") Expect(ui.Outputs).To(ContainSubstrings([]string{"my-app", "is already stopped"})) Expect(appRepo.UpdateAppGuid).To(Equal("")) }) }) Describe(".ApplicationStop()", func() { It("returns the updated app model from ApplicationStop()", func() { expectedStoppedApp := app expectedStoppedApp.State = "stopped" appRepo.UpdateAppResult = expectedStoppedApp stopper := NewStop(ui, config, appRepo) actualStoppedApp, err := stopper.ApplicationStop(app, config.OrganizationFields().Name, config.SpaceFields().Name) Expect(err).NotTo(HaveOccurred()) Expect(expectedStoppedApp).To(Equal(actualStoppedApp)) }) Context("When the app is already stopped", func() { BeforeEach(func() { app.State = "stopped" }) It("returns the app without updating it", func() { stopper := NewStop(ui, config, appRepo) updatedApp, err := stopper.ApplicationStop(app, config.OrganizationFields().Name, config.SpaceFields().Name)
Describe("re-pushing an existing app", func() { var existingApp models.Application BeforeEach(func() { existingApp = models.Application{} existingApp.Name = "existing-app" existingApp.Guid = "existing-app-guid" existingApp.Command = "unicorn -c config/unicorn.rb -D" existingApp.EnvironmentVars = map[string]string{ "crazy": "pants", "FOO": "NotYoBaz", "foo": "manchu", } appRepo.ReadReturns.App = existingApp appRepo.UpdateAppResult = existingApp }) It("resets the app's buildpack when the -b flag is provided as 'default'", func() { callPush("-b", "default", "existing-app") Expect(*appRepo.UpdateParams.BuildpackUrl).To(Equal("")) }) It("resets the app's command when the -c flag is provided as 'default'", func() { callPush("-c", "default", "existing-app") Expect(*appRepo.UpdateParams.Command).To(Equal("")) }) It("resets the app's buildpack when the -b flag is provided as 'null'", func() { callPush("-b", "null", "existing-app") Expect(*appRepo.UpdateParams.BuildpackUrl).To(Equal(""))