remove draft releases from resource check command

[#102513822]

Signed-off-by: Toby Rumans <trumans@pivotal.io>
This commit is contained in:
Evan Short
2015-09-11 17:30:53 -07:00
committed by Toby Rumans
parent b694a6e9c9
commit 118b16110f
3 changed files with 87 additions and 34 deletions

View File

@@ -29,7 +29,16 @@ func (c *CheckCommand) Run(request CheckRequest) ([]Version, error) {
sort.Sort(byVersion(releases))
latestVersion := *releases[len(releases)-1].TagName
var filteredReleases []github.RepositoryRelease
for _, release := range releases {
draft := *release.Draft
if !draft {
filteredReleases = append(filteredReleases, release)
}
}
latestVersion := *filteredReleases[len(filteredReleases)-1].TagName
if request.Version.Tag == "" {
return []Version{
@@ -43,7 +52,7 @@ func (c *CheckCommand) Run(request CheckRequest) ([]Version, error) {
upToLatest := false
reversedVersions := []Version{}
for _, release := range releases {
for _, release := range filteredReleases {
version := *release.TagName
if upToLatest {

View File

@@ -45,9 +45,9 @@ var _ = Describe("Check Command", func() {
Context("when there are releases", func() {
BeforeEach(func() {
returnedReleases = []github.RepositoryRelease{
{TagName: github.String("v0.4.0")},
{TagName: github.String("0.1.3")},
{TagName: github.String("v0.1.2")},
newRepositoryRelease("v0.4.0"),
newRepositoryRelease("0.1.3"),
newRepositoryRelease("v0.1.2"),
}
})
@@ -79,12 +79,13 @@ var _ = Describe("Check Command", func() {
})
Context("when there are releases", func() {
Context("and the releases do not contain a draft release", func() {
BeforeEach(func() {
returnedReleases = []github.RepositoryRelease{
{TagName: github.String("v0.1.4")},
{TagName: github.String("0.4.0")},
{TagName: github.String("v0.1.3")},
{TagName: github.String("0.1.2")},
newRepositoryRelease("v0.1.4"),
newRepositoryRelease("0.4.0"),
newRepositoryRelease("v0.1.3"),
newRepositoryRelease("0.1.2"),
}
})
@@ -117,5 +118,31 @@ var _ = Describe("Check Command", func() {
}))
})
})
Context("and one of the releases is a draft", func() {
BeforeEach(func() {
returnedReleases = []github.RepositoryRelease{
newDraftRepositoryRelease("v0.1.4"),
newRepositoryRelease("0.4.0"),
newRepositoryRelease("v0.1.3"),
}
})
It("returns all of the versions that are newer, and not a draft", func() {
command := resource.NewCheckCommand(githubClient)
response, err := command.Run(resource.CheckRequest{
Version: resource.Version{
Tag: "v0.1.3",
},
})
Ω(err).ShouldNot(HaveOccurred())
Ω(response).Should(Equal([]resource.Version{
{Tag: "0.4.0"},
}))
})
})
})
})
})

View File

@@ -5,9 +5,26 @@ import (
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"github.com/zachgersh/go-github/github"
)
func TestGithubReleaseResource(t *testing.T) {
RegisterFailHandler(Fail)
RunSpecs(t, "Github Release Resource Suite")
}
func newRepositoryRelease(version string) github.RepositoryRelease {
draft := false
return github.RepositoryRelease{
TagName: github.String(version),
Draft: &draft,
}
}
func newDraftRepositoryRelease(version string) github.RepositoryRelease {
draft := true
return github.RepositoryRelease{
TagName: github.String(version),
Draft: &draft,
}
}