Skip to content
Snippets Groups Projects

fix: read error from upload artifacts execution.

Merged Paul 🐻 requested to merge paulrbr/gitlab-runner:fix-artifact-upload-errors into master
All threads resolved!
1 file
+ 41
3
Compare changes
  • Side-by-side
  • Inline
+ 41
3
@@ -2,15 +2,16 @@ package common
import (
"testing"
"errors"
"github.com/stretchr/testify/assert"
)
func TestCacheCheckPolicy(t *testing.T) {
for num, tc := range []struct {
object CachePolicy
subject CachePolicy
expected bool
object CachePolicy
subject CachePolicy
expected bool
expectErr bool
description string
}{
@@ -38,3 +39,40 @@ func TestCacheCheckPolicy(t *testing.T) {
}
}
func doTestArtifactShouldUpload(t *testing.T, when ArtifactWhen, stateOK, expected bool) {
artifact := Artifact{When: when}
var state error
if !stateOK {
state = errors.New("Build error")
}
result := artifact.ShouldUpload(state)
if expected {
assert.True(t, result, "ShouldUpload should return true for when=%v and state=%v", when, state)
} else {
assert.False(t, result, "ShouldUpload should return false for when=%v and state=%v", when, state)
}
}
func TestArtifact_ShouldUpload(t *testing.T) {
examples := []struct {
when ArtifactWhen
stateOK bool
expected bool
}{
{when: "", stateOK: true, expected: true},
{when: ArtifactWhenOnSuccess, stateOK: true, expected: true},
{when: ArtifactWhenOnFailure, stateOK: true, expected: false},
{when: ArtifactWhenAlways, stateOK: true, expected: true},
{when: "", stateOK: false, expected: false},
{when: ArtifactWhenOnSuccess, stateOK: false, expected: false},
{when: ArtifactWhenOnFailure, stateOK: false, expected: true},
{when: ArtifactWhenAlways, stateOK: false, expected: true},
}
for _, example := range examples {
doTestArtifactShouldUpload(t, example.when, example.stateOK, example.expected)
}
}
Loading