Add tests for check pre release
This commit is contained in:
@@ -200,6 +200,165 @@ var _ = Describe("Check Command", func() {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Context("when pre releases are allowed and releases are not", func() {
|
||||||
|
Context("and one of the releases is a final and another is a draft", func() {
|
||||||
|
BeforeEach(func() {
|
||||||
|
returnedReleases = []*github.RepositoryRelease{
|
||||||
|
newDraftRepositoryRelease(1, "v0.1.4"),
|
||||||
|
newRepositoryRelease(2, "0.4.0"),
|
||||||
|
newPreReleaseRepositoryRelease(1, "v0.4.1-rc.10"),
|
||||||
|
newPreReleaseRepositoryRelease(2, "0.4.1-rc.9"),
|
||||||
|
newPreReleaseRepositoryRelease(3, "v0.4.1-rc.8"),
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
It("returns all of the versions that are newer, and only pre relases", func() {
|
||||||
|
command := resource.NewCheckCommand(githubClient)
|
||||||
|
|
||||||
|
response, err := command.Run(resource.CheckRequest{
|
||||||
|
Version: resource.Version{ID: "2"},
|
||||||
|
Source: resource.Source{Drafts: false,
|
||||||
|
PreRelease: true,
|
||||||
|
Release: false},
|
||||||
|
})
|
||||||
|
Ω(err).ShouldNot(HaveOccurred())
|
||||||
|
|
||||||
|
Ω(response).Should(Equal([]resource.Version{
|
||||||
|
{Tag: "0.4.1-rc.9"},
|
||||||
|
{Tag: "v0.4.1-rc.10"},
|
||||||
|
}))
|
||||||
|
})
|
||||||
|
|
||||||
|
It("returns the latest prerelease version if the current version is not found", func() {
|
||||||
|
command := resource.NewCheckCommand(githubClient)
|
||||||
|
|
||||||
|
response, err := command.Run(resource.CheckRequest{
|
||||||
|
Version: resource.Version{ID: "5"},
|
||||||
|
Source: resource.Source{Drafts: false,
|
||||||
|
PreRelease: true,
|
||||||
|
Release: false},
|
||||||
|
})
|
||||||
|
Ω(err).ShouldNot(HaveOccurred())
|
||||||
|
|
||||||
|
Ω(response).Should(Equal([]resource.Version{
|
||||||
|
{Tag: "v0.4.1-rc.10"},
|
||||||
|
}))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
Context("when releases and pre releases are allowed", func() {
|
||||||
|
Context("and final release is newer", func() {
|
||||||
|
BeforeEach(func() {
|
||||||
|
returnedReleases = []*github.RepositoryRelease{
|
||||||
|
newDraftRepositoryRelease(1, "v0.1.4"),
|
||||||
|
newRepositoryRelease(1, "0.3.9"),
|
||||||
|
newRepositoryRelease(2, "0.4.0"),
|
||||||
|
newRepositoryRelease(3, "v0.4.2"),
|
||||||
|
newPreReleaseRepositoryRelease(1, "v0.4.1-rc.10"),
|
||||||
|
newPreReleaseRepositoryRelease(2, "0.4.1-rc.9"),
|
||||||
|
newPreReleaseRepositoryRelease(3, "v0.4.2-rc.1"),
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
It("returns all of the versions that are newer, and are release and prerealse", func() {
|
||||||
|
command := resource.NewCheckCommand(githubClient)
|
||||||
|
|
||||||
|
response, err := command.Run(resource.CheckRequest{
|
||||||
|
Version: resource.Version{Tag: "0.4.0"},
|
||||||
|
Source: resource.Source{Drafts: false,
|
||||||
|
PreRelease: true,
|
||||||
|
Release: true},
|
||||||
|
})
|
||||||
|
Ω(err).ShouldNot(HaveOccurred())
|
||||||
|
|
||||||
|
Ω(response).Should(Equal([]resource.Version{
|
||||||
|
{Tag: "0.4.0"},
|
||||||
|
{Tag: "0.4.1-rc.9"},
|
||||||
|
{Tag: "v0.4.1-rc.10"},
|
||||||
|
{Tag: "v0.4.2-rc.1"},
|
||||||
|
{Tag: "v0.4.2"},
|
||||||
|
}))
|
||||||
|
})
|
||||||
|
|
||||||
|
It("returns the latest release version if the current version is not found", func() {
|
||||||
|
command := resource.NewCheckCommand(githubClient)
|
||||||
|
|
||||||
|
response, err := command.Run(resource.CheckRequest{
|
||||||
|
Version: resource.Version{ID: "5"},
|
||||||
|
Source: resource.Source{Drafts: false,
|
||||||
|
PreRelease: true,
|
||||||
|
Release: true},
|
||||||
|
})
|
||||||
|
Ω(err).ShouldNot(HaveOccurred())
|
||||||
|
|
||||||
|
Ω(response).Should(Equal([]resource.Version{
|
||||||
|
{Tag: "v0.4.2"},
|
||||||
|
}))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
Context("and prerelease is newer", func() {
|
||||||
|
BeforeEach(func() {
|
||||||
|
returnedReleases = []*github.RepositoryRelease{
|
||||||
|
newDraftRepositoryRelease(1, "v0.1.4"),
|
||||||
|
newRepositoryRelease(1, "0.3.9"),
|
||||||
|
newRepositoryRelease(2, "0.4.0"),
|
||||||
|
newRepositoryRelease(3, "v0.4.2"),
|
||||||
|
newPreReleaseRepositoryRelease(1, "v0.4.1-rc.10"),
|
||||||
|
newPreReleaseRepositoryRelease(2, "0.4.1-rc.9"),
|
||||||
|
newPreReleaseRepositoryRelease(3, "v0.4.2-rc.1"),
|
||||||
|
newPreReleaseRepositoryRelease(4, "v0.4.3-rc.1"),
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
It("returns all of the versions that are newer, and are release and prerealse", func() {
|
||||||
|
command := resource.NewCheckCommand(githubClient)
|
||||||
|
|
||||||
|
response, err := command.Run(resource.CheckRequest{
|
||||||
|
Version: resource.Version{Tag: "0.4.0"},
|
||||||
|
Source: resource.Source{Drafts: false,
|
||||||
|
PreRelease: true,
|
||||||
|
Release: true},
|
||||||
|
})
|
||||||
|
Ω(err).ShouldNot(HaveOccurred())
|
||||||
|
|
||||||
|
Ω(response).Should(Equal([]resource.Version{
|
||||||
|
{Tag: "0.4.0"},
|
||||||
|
{Tag: "0.4.1-rc.9"},
|
||||||
|
{Tag: "v0.4.1-rc.10"},
|
||||||
|
{Tag: "v0.4.2-rc.1"},
|
||||||
|
{Tag: "v0.4.2"},
|
||||||
|
{Tag: "v0.4.3-rc.1"},
|
||||||
|
}))
|
||||||
|
})
|
||||||
|
|
||||||
|
It("returns the latest prerelease version if the current version is not found", func() {
|
||||||
|
command := resource.NewCheckCommand(githubClient)
|
||||||
|
|
||||||
|
response, err := command.Run(resource.CheckRequest{
|
||||||
|
Version: resource.Version{ID: "5"},
|
||||||
|
Source: resource.Source{Drafts: false,
|
||||||
|
PreRelease: true,
|
||||||
|
Release: true},
|
||||||
|
})
|
||||||
|
Ω(err).ShouldNot(HaveOccurred())
|
||||||
|
|
||||||
|
Ω(response).Should(Equal([]resource.Version{
|
||||||
|
{Tag: "v0.4.3-rc.1"},
|
||||||
|
}))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
Context("when draft releases are allowed", func() {
|
Context("when draft releases are allowed", func() {
|
||||||
Context("and one of the releases is a final release", func() {
|
Context("and one of the releases is a final release", func() {
|
||||||
BeforeEach(func() {
|
BeforeEach(func() {
|
||||||
|
@@ -15,26 +15,34 @@ func TestGithubReleaseResource(t *testing.T) {
|
|||||||
|
|
||||||
func newRepositoryRelease(id int, version string) *github.RepositoryRelease {
|
func newRepositoryRelease(id int, version string) *github.RepositoryRelease {
|
||||||
return &github.RepositoryRelease{
|
return &github.RepositoryRelease{
|
||||||
TagName: github.String(version),
|
TagName: github.String(version),
|
||||||
Draft: github.Bool(false),
|
Draft: github.Bool(false),
|
||||||
Prerelease: github.Bool(false),
|
Prerelease: github.Bool(false),
|
||||||
ID: github.Int(id),
|
ID: github.Int(id),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func newPreReleaseRepositoryRelease(id int, version string) *github.RepositoryRelease {
|
||||||
|
return &github.RepositoryRelease{
|
||||||
|
TagName: github.String(version),
|
||||||
|
Draft: github.Bool(false),
|
||||||
|
Prerelease: github.Bool(true),
|
||||||
|
ID: github.Int(id),
|
||||||
|
}
|
||||||
|
}
|
||||||
func newDraftRepositoryRelease(id int, version string) *github.RepositoryRelease {
|
func newDraftRepositoryRelease(id int, version string) *github.RepositoryRelease {
|
||||||
return &github.RepositoryRelease{
|
return &github.RepositoryRelease{
|
||||||
TagName: github.String(version),
|
TagName: github.String(version),
|
||||||
Draft: github.Bool(true),
|
Draft: github.Bool(true),
|
||||||
Prerelease: github.Bool(false),
|
Prerelease: github.Bool(false),
|
||||||
ID: github.Int(id),
|
ID: github.Int(id),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func newDraftWithNilTagRepositoryRelease(id int) *github.RepositoryRelease {
|
func newDraftWithNilTagRepositoryRelease(id int) *github.RepositoryRelease {
|
||||||
return &github.RepositoryRelease{
|
return &github.RepositoryRelease{
|
||||||
Draft: github.Bool(true),
|
Draft: github.Bool(true),
|
||||||
Prerelease: github.Bool(false),
|
Prerelease: github.Bool(false),
|
||||||
ID: github.Int(id),
|
ID: github.Int(id),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user