Example #1
0
			repo.CreateRestageRequest("some-cool-app-guid")
			Expect(handler).To(HaveAllRequestsCalled())
		})
	})

	Describe("updating applications", func() {
		It("makes the right request", func() {
			ts, handler, repo := createAppRepo([]testnet.TestRequest{updateApplicationRequest})
			defer ts.Close()

			app := models.Application{}
			app.GUID = "my-app-guid"
			app.Name = "my-cool-app"
			app.BuildpackURL = "buildpack-url"
			app.Command = "some-command"
			app.HealthCheckType = "none"
			app.Memory = 2048
			app.InstanceCount = 3
			app.Stack = &models.Stack{GUID: "some-stack-guid"}
			app.SpaceGUID = "some-space-guid"
			app.State = "started"
			app.DiskQuota = 512
			Expect(app.EnvironmentVars).To(BeNil())

			updatedApp, apiErr := repo.Update(app.GUID, app.ToParams())

			Expect(handler).To(HaveAllRequestsCalled())
			Expect(apiErr).NotTo(HaveOccurred())
			Expect(updatedApp.Command).To(Equal("some-command"))
			Expect(updatedApp.DetectedStartCommand).To(Equal("detected command"))
Example #2
0
				Expect(appRepo.UpdateCallCount()).To(Equal(1))
				appGuid, appParams := appRepo.UpdateArgsForCall(0)
				Expect(appGuid).To(Equal(zeroInstanceApp.GUID))
				startedState := "started"
				Expect(appParams).To(Equal(models.AppParams{State: &startedState}))

				zeroInstanceApp.State = startedState
				ui, _, _ = startAppWithInstancesAndErrors(zeroInstanceApp, requirementsFactory)
				Expect(ui.Outputs()).To(ContainSubstrings(
					[]string{"App my-app is already started"},
				))
				Expect(appRepo.UpdateCallCount()).To(Equal(1))
			})
		})
		It("displays the command start command instead of the detected start command when set", func() {
			defaultAppForStart.Command = "command start command"
			defaultAppForStart.DetectedStartCommand = "detected start command"
			ui, appRepo, _ = startAppWithInstancesAndErrors(defaultAppForStart, requirementsFactory)

			Expect(appRepo.GetAppCallCount()).To(Equal(1))
			Expect(appRepo.GetAppArgsForCall(0)).To(Equal("my-app-guid"))
			Expect(ui.Outputs()).To(ContainSubstrings(
				[]string{"App my-app was started using this command `command start command`"},
			))
		})

		It("displays the detected start command when no other command is set", func() {
			defaultAppForStart.DetectedStartCommand = "detected start command"
			defaultAppForStart.Command = ""
			ui, appRepo, _ := startAppWithInstancesAndErrors(defaultAppForStart, requirementsFactory)
			})

			Context("when saving the manifest fails", func() {
				BeforeEach(func() {
					fakeManifest.SaveReturns(errors.New("save-err"))
				})

				It("fails with error", func() {
					Expect(runCLIErr).To(HaveOccurred())
					Expect(runCLIErr.Error()).To(Equal("Error creating manifest file: save-err"))
				})
			})

			Context("when the app has a command", func() {
				BeforeEach(func() {
					application.Command = "app-command"
					appSummaryRepo.GetSummaryReturns(application, nil)
				})

				It("sets the start command", func() {
					Expect(runCLIErr).NotTo(HaveOccurred())
					Expect(fakeManifest.StartCommandCallCount()).To(Equal(1))
					name, command := fakeManifest.StartCommandArgsForCall(0)
					Expect(name).To(Equal("app-name"))
					Expect(command).To(Equal("app-command"))
				})
			})

			Context("when the app has a buildpack", func() {
				BeforeEach(func() {
					application.BuildpackURL = "buildpack"