Skip to content

Commit

Permalink
Display error when --path is invalid
Browse files Browse the repository at this point in the history
Signed-off-by: Javier Romero <j.romero.1214@gmail.com>
  • Loading branch information
jromero committed Apr 13, 2019
1 parent aec3b43 commit 776b67d
Show file tree
Hide file tree
Showing 5 changed files with 50 additions and 2 deletions.
10 changes: 10 additions & 0 deletions build.go
Expand Up @@ -123,6 +123,16 @@ func (bf *BuildFactory) BuildConfigFromFlags(ctx context.Context, f *BuildFlags)
if err != nil {
return nil, err
}
stat, err := os.Stat(appDir)
if err != nil {
if os.IsNotExist(err) {
return nil, errors.Errorf("app directory %s does not exist", style.Symbol(appDir))
} else {
return nil, err
}
} else if !stat.IsDir() {
return nil, errors.Errorf("provided app directory %s is not a directory", style.Symbol(appDir))
}

f.RepoName = calculateRepositoryName(appDir, f)

Expand Down
37 changes: 37 additions & 0 deletions build_test.go
Expand Up @@ -4,9 +4,11 @@ import (
"bytes"
"context"
"errors"
"fmt"
"io/ioutil"
"math/rand"
"os"
"path/filepath"
"testing"
"time"

Expand Down Expand Up @@ -368,5 +370,40 @@ PATH
})
h.AssertNotEq(t, os.Getenv("PATH"), "")
})

when("app path is invalid", func() {
when("app directory does not exist", func() {
it("return error", func() {
appDir := filepath.Join("testdata", "does-not-exist")

config, err := factory.BuildConfigFromFlags(context.TODO(), &pack.BuildFlags{
RepoName: "some/app",
Builder: "some/builder",
AppDir: appDir,
})

h.AssertNil(t, config)
h.AssertNotNil(t, err)
h.AssertContainsMatch(t, err.Error(), fmt.Sprintf("^app directory .*%s.* does not exist$", appDir))
})
})

when("app directory is a file", func() {
it("return error", func() {
appDir := filepath.Join("testdata", "just-a-file.txt")

config, err := factory.BuildConfigFromFlags(context.TODO(), &pack.BuildFlags{
RepoName: "some/app",
Builder: "some/builder",
AppDir: appDir,
})

h.AssertNil(t, config)
h.AssertNotNil(t, err)

h.AssertContainsMatch(t, err.Error(), fmt.Sprintf("^provided app directory .*%s.* is not a directory$", appDir))
})
})
})
}, spec.Parallel())
}
4 changes: 2 additions & 2 deletions run_test.go
Expand Up @@ -81,15 +81,15 @@ func testRun(t *testing.T, when spec.G, it spec.S) {

run, err := factory.RunConfigFromFlags(context.TODO(), &pack.RunFlags{
BuildFlags: pack.BuildFlags{
AppDir: "acceptance/testdata/node_app",
AppDir: "testdata/some-app",
Builder: "some/builder",
RunImage: "some/run",
},
Ports: []string{"1370"},
})
h.AssertNil(t, err)

absAppDir, _ := filepath.Abs("acceptance/testdata/node_app")
absAppDir, _ := filepath.Abs("testdata/some-app")
absAppDirMd5 := fmt.Sprintf("pack.local/run/%x", md5.Sum([]byte(absAppDir)))
h.AssertEq(t, run.RepoName, absAppDirMd5)
h.AssertEq(t, run.Ports, []string{"1370"})
Expand Down
Empty file added testdata/just-a-file.txt
Empty file.
1 change: 1 addition & 0 deletions testdata/some-app/.gitignore
@@ -0,0 +1 @@
!.gitignore

0 comments on commit 776b67d

Please sign in to comment.