Expect(err).NotTo(HaveOccurred()) Eventually(sess).Should(Exit(0)) sess, err = cmd.Start("deis perms:list --admin", &admin) Eventually(sess).Should(Say("=== Administrators")) Eventually(sess).Should(Say(otherUser.Username)) Expect(err).NotTo(HaveOccurred()) Eventually(sess).Should(Exit(0)) }) Context("who owns an existing app", func() { var app model.App BeforeEach(func() { app = apps.Create(otherUser, "--no-remote") }) AfterEach(func() { apps.Destroy(otherUser, app) }) Specify("that admin can list permissions on the app owned by the second user", func() { sess, err := cmd.Start("deis perms:list --app=%s", &admin, app.Name) Eventually(sess).Should(Say("=== %s's Users", app.Name)) Expect(err).NotTo(HaveOccurred()) Eventually(sess).Should(Exit(0)) }) Context("and a third user also exists", func() {
}) Context("and who has a local git repo containing buildpack source code", func() { BeforeEach(func() { output, err := cmd.Execute(`git clone https://github.com/deis/example-go.git`) Expect(err).NotTo(HaveOccurred(), output) }) Context("and has run `deis apps:create` from within that repo", func() { var app model.App BeforeEach(func() { os.Chdir("example-go") app = apps.Create(user) }) AfterEach(func() { apps.Destroy(user, app) }) Specify("that user can deploy that app using a git push", func() { git.Push(user, keyPath, app, "Powered by Deis") }) Specify("that user can interrupt the deploy of the app and recover", func() { git.PushWithInterrupt(user, keyPath) git.PushUntilResult(user, keyPath, model.CmdResult{
var user model.User BeforeEach(func() { user = auth.Register() }) AfterEach(func() { auth.Cancel(user) }) Context("who owns an existing app that has already been deployed", func() { var app model.App BeforeEach(func() { app = apps.Create(user, "--no-remote") builds.Create(user, app) }) AfterEach(func() { apps.Destroy(user, app) }) Specify("that user can list environment variables on that app", func() { sess, err := cmd.Start("deis config:list -a %s", &user, app.Name) Eventually(sess).Should(Say("=== %s Config", app.Name)) Expect(err).NotTo(HaveOccurred()) Eventually(sess).Should(Exit(0)) }) Specify("that user can set environment variables on that app", func() {
func(url, buildpack, banner string) { var app model.App output, err := cmd.Execute(`git clone %s`, url) Expect(err).NotTo(HaveOccurred(), output) // infer app directory from URL splits := strings.Split(url, "/") dir := strings.TrimSuffix(splits[len(splits)-1], ".git") os.Chdir(dir) // create with custom buildpack if needed var args []string if buildpack != "" { args = append(args, fmt.Sprintf("--buildpack %s", buildpack)) } app = apps.Create(user, args...) defer apps.Destroy(user, app) git.Push(user, keyPath, app, banner) }, // NOTE: Keep this list up-to-date with any example apps that are added // under the github/deis org, or any third-party apps that increase coverage // or prevent regressions. Entry("Clojure", "https://github.com/deis/example-clojure-ring.git", "", "Powered by Deis"), Entry("Go", "https://github.com/deis/example-go.git", "", "Powered by Deis"), Entry("Java", "https://github.com/deis/example-java-jetty.git", "", "Powered by Deis"), Entry("Multi", "https://github.com/deis/example-multi", "",
var _ = Describe("deis apps", func() { Context("with an existing user", func() { var user model.User BeforeEach(func() { user = auth.Register() }) AfterEach(func() { auth.Cancel(user) }) Specify("that user can create an app without a git remote", func() { app := apps.Create(user, "--no-remote") apps.Destroy(user, app) }) Specify("that user can create an app that uses a custom buildpack", func() { app := apps.Create(user, "--no-remote", "--buildpack https://weird-buildpacks.io/lisp") defer apps.Destroy(user, app) sess, err := cmd.Start("deis config:list -a %s", &user, app.Name) Eventually(sess).Should(Say("BUILDPACK_URL")) Expect(err).NotTo(HaveOccurred()) Eventually(sess).Should(Exit(0)) }) Context("and an app that does not exist", func() { bogusAppName := "bogus-app-name"
}) Context("and who has a local git repo containing source code", func() { BeforeEach(func() { output, err := cmd.Execute(`git clone https://github.com/deis/example-go.git`) Expect(err).NotTo(HaveOccurred(), output) }) Context("and has run `deis apps:create` from within that repo", func() { var app model.App BeforeEach(func() { os.Chdir("example-go") app = apps.Create(user) }) AfterEach(func() { apps.Destroy(user, app) }) Specify("that user can deploy that app using a git push", func() { git.Push(user, keyPath) }) }) }) })