809
}
810
812
>
s.CreateWorkflow(
813
>
rand.Int63(),
814
>
enumsspb.WORKFLOW_EXECUTION_STATE_CREATED,
815
>
enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING,
816
>
rand.Int63(),
817
>
)
818
>
819
>
zombieRunID := uuid.New().String()
820
>
zombieBranchToken := RandomBranchToken(s.NamespaceID, s.WorkflowID, zombieRunID, s.HistoryBranchUtil)
821
>
zombieSnapshot, zombieEvents1 := RandomSnapshot(
822
>
s.T(),
823
>
s.NamespaceID,
824
>
s.WorkflowID,
825
>
zombieRunID,
826
>
common.FirstEventID,
827
>
rand.Int63(),
828
>
enumsspb.WORKFLOW_EXECUTION_STATE_ZOMBIE,
829
>
enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING,
830
>
rand.Int63(),
831
>
zombieBranchToken,
832
>
)
833
>
_, err := s.ExecutionManager.CreateWorkflowExecution(s.Ctx, &p.CreateWorkflowExecutionRequest{
834
>
ShardID: s.ShardID,
835
>
RangeID: s.RangeID,
836
>
Mode: p.CreateWorkflowModeBypassCurrent,
837
>
838
>
PreviousRunID: "",
839
>
PreviousLastWriteVersion: 0,
840
>
841
>
ArchetypeID: chasm.WorkflowArchetypeID,
842
>
843
>
NewWorkflowSnapshot: *zombieSnapshot,
844
>
NewWorkflowEvents: zombieEvents1,
845
>
})
846
>
s.NoError(err)
847
>
848
>
zombieMutation, zombieEvents2 := RandomMutation(
849
>
s.T(),
850
>
s.NamespaceID,
851
>
s.WorkflowID,
852
>
zombieRunID,
853
>
zombieSnapshot.NextEventID,
854
>
rand.Int63(),
855
>
enumsspb.WORKFLOW_EXECUTION_STATE_ZOMBIE,
856
>
enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING,
857
>
rand.Int63(),
858
>
zombieBranchToken,
859
>
)
860
>
_, err = s.ExecutionManager.UpdateWorkflowExecution(s.Ctx, &p.UpdateWorkflowExecutionRequest{
861
>
ShardID: s.ShardID,
862
>
RangeID: s.RangeID,
863
>
Mode: p.UpdateWorkflowModeBypassCurrent,
864
>
865
>
ArchetypeID: chasm.WorkflowArchetypeID,
866
>
867
>
UpdateWorkflowMutation: *zombieMutation,
868
>
UpdateWorkflowEvents: zombieEvents2,
869
>
870
>
NewWorkflowSnapshot: nil,
871
>
NewWorkflowEvents: nil,
872
>
})
873
>
s.IsType(&p.WorkflowConditionFailedError{}, err)
874
>
875
>
s.AssertMSEqualWithDB(chasm.WorkflowArchetypeID, zombieSnapshot)
876
>
s.AssertHEPrefixWithDB(zombieBranchToken, zombieEvents1)
877
>
}
878
879
func (s *ExecutionMutableStateSuite) TestUpdate_Zombie_WithNew() {