|
|
|
@ -4,44 +4,57 @@ import "testing" |
|
|
|
|
|
|
|
|
|
func TestPreparingReleaseFromRemote(t *testing.T) { |
|
|
|
|
|
|
|
|
|
var builder releaseBuilder |
|
|
|
|
|
|
|
|
|
versionIn := "v5.2.0-beta1" |
|
|
|
|
expectedVersion := "5.2.0-beta1" |
|
|
|
|
whatsNewUrl := "https://whatsnews.foo/" |
|
|
|
|
relNotesUrl := "https://relnotes.foo/" |
|
|
|
|
expectedArch := "amd64" |
|
|
|
|
expectedOs := "linux" |
|
|
|
|
buildArtifacts := []buildArtifact{{expectedOs, expectedArch, ".linux-amd64.tar.gz"}} |
|
|
|
|
|
|
|
|
|
builder = releaseFromExternalContent{ |
|
|
|
|
getter: mockHttpGetter{}, |
|
|
|
|
rawVersion: versionIn, |
|
|
|
|
artifactConfigurations: buildArtifactConfigurations, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
rel, _ := builder.prepareRelease("https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana", whatsNewUrl, relNotesUrl, false) |
|
|
|
|
|
|
|
|
|
if !rel.Beta || rel.Stable { |
|
|
|
|
t.Errorf("%s should have been tagged as beta (not stable), but wasn't .", versionIn) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if rel.Version != expectedVersion { |
|
|
|
|
t.Errorf("Expected version to be %s, but it was %s.", expectedVersion, rel.Version) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
expectedBuilds := len(buildArtifacts) |
|
|
|
|
if len(rel.Builds) != expectedBuilds { |
|
|
|
|
t.Errorf("Expected %v builds, but got %v.", expectedBuilds, len(rel.Builds)) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
build := rel.Builds[0] |
|
|
|
|
if build.Arch != expectedArch { |
|
|
|
|
t.Errorf("Expected arch to be %v, but it was %v", expectedArch, build.Arch) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if build.Os != expectedOs { |
|
|
|
|
t.Errorf("Expected arch to be %v, but it was %v", expectedOs, build.Os) |
|
|
|
|
cases := []struct { |
|
|
|
|
version string |
|
|
|
|
expectedVersion string |
|
|
|
|
whatsNewUrl string |
|
|
|
|
relNotesUrl string |
|
|
|
|
expectedArch string |
|
|
|
|
expectedOs string |
|
|
|
|
buildArtifacts []buildArtifact |
|
|
|
|
}{ |
|
|
|
|
{ |
|
|
|
|
version: "v5.2.0-beta1", |
|
|
|
|
expectedVersion: "5.2.0-beta1", |
|
|
|
|
whatsNewUrl: "https://whatsnews.foo/", |
|
|
|
|
relNotesUrl: "https://relnotes.foo/", |
|
|
|
|
expectedArch: "amd64", |
|
|
|
|
expectedOs: "linux", |
|
|
|
|
buildArtifacts: []buildArtifact{{"linux", "amd64", ".linux-amd64.tar.gz"}}, |
|
|
|
|
}, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for _, test := range cases { |
|
|
|
|
var builder releaseBuilder |
|
|
|
|
builder = releaseFromExternalContent{ |
|
|
|
|
getter: mockHttpGetter{}, |
|
|
|
|
rawVersion: test.version, |
|
|
|
|
artifactConfigurations: test.buildArtifacts, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
rel, _ := builder.prepareRelease("https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana", test.whatsNewUrl, test.relNotesUrl, false) |
|
|
|
|
|
|
|
|
|
if !rel.Beta || rel.Stable { |
|
|
|
|
t.Errorf("%s should have been tagged as beta (not stable), but wasn't .", test.version) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if rel.Version != test.expectedVersion { |
|
|
|
|
t.Errorf("Expected version to be %s, but it was %s.", test.expectedVersion, rel.Version) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
expectedBuilds := len(test.buildArtifacts) |
|
|
|
|
if len(rel.Builds) != expectedBuilds { |
|
|
|
|
t.Errorf("Expected %v builds, but got %v.", expectedBuilds, len(rel.Builds)) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
build := rel.Builds[0] |
|
|
|
|
if build.Arch != test.expectedArch { |
|
|
|
|
t.Errorf("Expected arch to be %v, but it was %v", test.expectedArch, build.Arch) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if build.Os != test.expectedOs { |
|
|
|
|
t.Errorf("Expected arch to be %v, but it was %v", test.expectedOs, build.Os) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|