blob: 468ffb994838a4a724123b4ec546eaa548b8bc59 [file]
package internal
import (
"testing"
"github.com/stretchr/testify/mock"
"github.com/stretchr/testify/require"
buildbucketpb "go.chromium.org/luci/buildbucket/proto"
apipb "go.chromium.org/luci/swarming/proto/api_v2"
"go.temporal.io/sdk/testsuite"
"go.skia.org/infra/pinpoint/go/workflows"
)
func Test_BuildChrome_ShouldReturnBuild(t *testing.T) {
testSuite := &testsuite.WorkflowTestSuite{}
env := testSuite.NewTestWorkflowEnvironment()
var bca *BuildActivity
const fakeBuildID = int64(1234)
cas := &apipb.CASReference{
CasInstance: "fake-instance",
}
env.OnActivity(bca.SearchOrBuildActivity, mock.Anything, mock.Anything, mock.Anything).Return(fakeBuildID, nil).Once()
env.OnActivity(bca.WaitBuildCompletionActivity, mock.Anything, fakeBuildID, mock.Anything).Return(buildbucketpb.Status_SUCCESS, nil).Once()
env.OnActivity(bca.RetrieveBuildArtifactActivity, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(cas, nil).Once()
env.ExecuteWorkflow(BuildWorkflow, &workflows.BuildParams{})
require.True(t, env.IsWorkflowCompleted())
require.NoError(t, env.GetWorkflowError())
var result *workflows.Build
require.NoError(t, env.GetWorkflowResult(&result))
require.EqualExportedValues(t, workflows.Build{
ID: fakeBuildID,
Status: buildbucketpb.Status_SUCCESS,
CAS: cas,
}, *result)
env.AssertExpectations(t)
}
func Test_BuildChrome_ShouldPopulateBuildError(t *testing.T) {
testSuite := &testsuite.WorkflowTestSuite{}
env := testSuite.NewTestWorkflowEnvironment()
var bca *BuildActivity
const fakeBuildID = int64(1234)
env.OnActivity(bca.SearchOrBuildActivity, mock.Anything, mock.Anything, mock.Anything).Return(fakeBuildID, nil)
env.OnActivity(bca.WaitBuildCompletionActivity, mock.Anything, fakeBuildID, mock.Anything).Return(buildbucketpb.Status_FAILURE, nil).Once()
env.OnActivity(bca.RetrieveBuildArtifactActivity, mock.Anything, mock.Anything, mock.Anything, mock.Anything).Never()
env.ExecuteWorkflow(BuildWorkflow, &workflows.BuildParams{})
require.True(t, env.IsWorkflowCompleted())
require.NoError(t, env.GetWorkflowError())
var result *workflows.Build
require.NoError(t, env.GetWorkflowResult(&result))
require.EqualExportedValues(t, workflows.Build{
ID: fakeBuildID,
Status: buildbucketpb.Status_FAILURE,
CAS: nil,
}, *result)
env.AssertExpectations(t)
}