remove draft releases from resource check command
[#102513822] Signed-off-by: Toby Rumans <trumans@pivotal.io>
This commit is contained in:
@@ -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 {
|
||||
|
@@ -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"},
|
||||
}))
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
@@ -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,
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user