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))
|
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 == "" {
|
if request.Version.Tag == "" {
|
||||||
return []Version{
|
return []Version{
|
||||||
@@ -43,7 +52,7 @@ func (c *CheckCommand) Run(request CheckRequest) ([]Version, error) {
|
|||||||
|
|
||||||
upToLatest := false
|
upToLatest := false
|
||||||
reversedVersions := []Version{}
|
reversedVersions := []Version{}
|
||||||
for _, release := range releases {
|
for _, release := range filteredReleases {
|
||||||
version := *release.TagName
|
version := *release.TagName
|
||||||
|
|
||||||
if upToLatest {
|
if upToLatest {
|
||||||
|
@@ -45,9 +45,9 @@ var _ = Describe("Check Command", func() {
|
|||||||
Context("when there are releases", func() {
|
Context("when there are releases", func() {
|
||||||
BeforeEach(func() {
|
BeforeEach(func() {
|
||||||
returnedReleases = []github.RepositoryRelease{
|
returnedReleases = []github.RepositoryRelease{
|
||||||
{TagName: github.String("v0.4.0")},
|
newRepositoryRelease("v0.4.0"),
|
||||||
{TagName: github.String("0.1.3")},
|
newRepositoryRelease("0.1.3"),
|
||||||
{TagName: github.String("v0.1.2")},
|
newRepositoryRelease("v0.1.2"),
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -79,42 +79,69 @@ var _ = Describe("Check Command", func() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
Context("when there are releases", func() {
|
Context("when there are releases", func() {
|
||||||
BeforeEach(func() {
|
Context("and the releases do not contain a draft release", func() {
|
||||||
returnedReleases = []github.RepositoryRelease{
|
BeforeEach(func() {
|
||||||
{TagName: github.String("v0.1.4")},
|
returnedReleases = []github.RepositoryRelease{
|
||||||
{TagName: github.String("0.4.0")},
|
newRepositoryRelease("v0.1.4"),
|
||||||
{TagName: github.String("v0.1.3")},
|
newRepositoryRelease("0.4.0"),
|
||||||
{TagName: github.String("0.1.2")},
|
newRepositoryRelease("v0.1.3"),
|
||||||
}
|
newRepositoryRelease("0.1.2"),
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
It("returns an empty list if the lastet version has been checked", func() {
|
||||||
|
command := resource.NewCheckCommand(githubClient)
|
||||||
|
|
||||||
|
response, err := command.Run(resource.CheckRequest{
|
||||||
|
Version: resource.Version{
|
||||||
|
Tag: "0.4.0",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
Ω(err).ShouldNot(HaveOccurred())
|
||||||
|
|
||||||
|
Ω(response).Should(BeEmpty())
|
||||||
|
})
|
||||||
|
|
||||||
|
It("returns all of the versions that are newer", 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: "v0.1.4"},
|
||||||
|
{Tag: "0.4.0"},
|
||||||
|
}))
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
It("returns an empty list if the lastet version has been checked", func() {
|
Context("and one of the releases is a draft", func() {
|
||||||
command := resource.NewCheckCommand(githubClient)
|
BeforeEach(func() {
|
||||||
|
returnedReleases = []github.RepositoryRelease{
|
||||||
response, err := command.Run(resource.CheckRequest{
|
newDraftRepositoryRelease("v0.1.4"),
|
||||||
Version: resource.Version{
|
newRepositoryRelease("0.4.0"),
|
||||||
Tag: "0.4.0",
|
newRepositoryRelease("v0.1.3"),
|
||||||
},
|
}
|
||||||
})
|
})
|
||||||
Ω(err).ShouldNot(HaveOccurred())
|
|
||||||
|
|
||||||
Ω(response).Should(BeEmpty())
|
It("returns all of the versions that are newer, and not a draft", func() {
|
||||||
})
|
command := resource.NewCheckCommand(githubClient)
|
||||||
|
|
||||||
It("returns all of the versions that are newer", func() {
|
response, err := command.Run(resource.CheckRequest{
|
||||||
command := resource.NewCheckCommand(githubClient)
|
Version: resource.Version{
|
||||||
|
Tag: "v0.1.3",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
Ω(err).ShouldNot(HaveOccurred())
|
||||||
|
|
||||||
response, err := command.Run(resource.CheckRequest{
|
Ω(response).Should(Equal([]resource.Version{
|
||||||
Version: resource.Version{
|
{Tag: "0.4.0"},
|
||||||
Tag: "v0.1.3",
|
}))
|
||||||
},
|
|
||||||
})
|
})
|
||||||
Ω(err).ShouldNot(HaveOccurred())
|
|
||||||
|
|
||||||
Ω(response).Should(Equal([]resource.Version{
|
|
||||||
{Tag: "v0.1.4"},
|
|
||||||
{Tag: "0.4.0"},
|
|
||||||
}))
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@@ -5,9 +5,26 @@ import (
|
|||||||
|
|
||||||
. "github.com/onsi/ginkgo"
|
. "github.com/onsi/ginkgo"
|
||||||
. "github.com/onsi/gomega"
|
. "github.com/onsi/gomega"
|
||||||
|
"github.com/zachgersh/go-github/github"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestGithubReleaseResource(t *testing.T) {
|
func TestGithubReleaseResource(t *testing.T) {
|
||||||
RegisterFailHandler(Fail)
|
RegisterFailHandler(Fail)
|
||||||
RunSpecs(t, "Github Release Resource Suite")
|
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