}) // 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() { callPush("-p", "path", "too-much", "app-name") Expect(testcmd.CommandDidPassRequirements).To(BeFalse()) }) }) Describe("when pushing a new app", func() { BeforeEach(func() { appRepo.ReadReturns.Error = errors.NewModelNotFoundError("App", "the-app") zipper.ZipReturns(nil) zipper.GetZipSizeReturns(9001, nil) actor.GatherFilesReturns(nil, 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 = "my-new-app" route.Domain = domainRepo.ListDomainsForOrgDomains[0] routeRepo.FindByHostAndDomainReturns.Route = route })