// yes, we're aware that the args here should probably be provided in a different order // erg: app-name -p some/path some-extra-arg // but the test infrastructure for parsing args and flags is sorely lacking It("fails when provided too many args", func() { Expect(callPush("-p", "path", "too-much", "app-name")).To(BeFalse()) }) }) Describe("when pushing a new app", func() { BeforeEach(func() { appRepo.ReadReturns(models.Application{}, errors.NewModelNotFoundError("App", "the-app")) appRepo.CreateStub = func(params models.AppParams) (models.Application, error) { a := models.Application{} a.Guid = *params.Name + "-guid" a.Name = *params.Name a.State = "stopped" return a, nil } zipper.ZipReturns(nil) zipper.GetZipSizeReturns(9001, nil) actor.GatherFilesReturns(nil, true, nil) actor.UploadAppReturns(nil) }) Context("when the default route for the app already exists", func() { BeforeEach(func() { route := models.Route{} route.Guid = "my-route-guid" route.Host = "app-name"