1661
}
1662
1664
>
s.CreateWorkflow(
1665
>
rand.Int63(),
1666
>
enumsspb.WORKFLOW_EXECUTION_STATE_CREATED,
1667
>
enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING,
1668
>
rand.Int63(),
1669
>
)
1670
>
baseRunID := uuid.New().String()
1671
>
baseBranchToken := RandomBranchToken(s.NamespaceID, s.WorkflowID, baseRunID, s.HistoryBranchUtil)
1672
>
baseSnapshot, baseEvents := RandomSnapshot(
1673
>
s.T(),
1674
>
s.NamespaceID,
1675
>
s.WorkflowID,
1676
>
baseRunID,
1677
>
common.FirstEventID,
1678
>
rand.Int63(),
1679
>
enumsspb.WORKFLOW_EXECUTION_STATE_ZOMBIE,
1680
>
enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING,
1681
>
rand.Int63(),
1682
>
baseBranchToken,
1683
>
)
1684
>
_, err := s.ExecutionManager.CreateWorkflowExecution(s.Ctx, &p.CreateWorkflowExecutionRequest{
1685
>
ShardID: s.ShardID,
1686
>
RangeID: s.RangeID,
1687
>
Mode: p.CreateWorkflowModeBypassCurrent,
1688
>
1689
>
PreviousRunID: "",
1690
>
PreviousLastWriteVersion: 0,
1691
>
1692
>
ArchetypeID: chasm.WorkflowArchetypeID,
1693
>
1694
>
NewWorkflowSnapshot: *baseSnapshot,
1695
>
NewWorkflowEvents: baseEvents,
1696
>
})
1697
>
s.NoError(err)
1698
>
1699
>
resetSnapshot, resetEvents := RandomSnapshot(
1700
>
s.T(),
1701
>
s.NamespaceID,
1702
>
s.WorkflowID,
1703
>
baseRunID,
1704
>
baseSnapshot.NextEventID,
1705
>
rand.Int63(),
1706
>
enumsspb.WORKFLOW_EXECUTION_STATE_RUNNING,
1707
>
enumspb.WORKFLOW_EXECUTION_STATUS_RUNNING,
1708
>
baseSnapshot.DBRecordVersion+1,
1709
>
baseBranchToken,
1710
>
)
1711
>
_, err = s.ExecutionManager.ConflictResolveWorkflowExecution(s.Ctx, &p.ConflictResolveWorkflowExecutionRequest{
1712
>
ShardID: s.ShardID,
1713
>
RangeID: s.RangeID,
1714
>
Mode: p.ConflictResolveWorkflowModeUpdateCurrent,
1715
>
1716
>
ArchetypeID: chasm.WorkflowArchetypeID,
1717
>
1718
>
ResetWorkflowSnapshot: *resetSnapshot,
1719
>
ResetWorkflowEvents: resetEvents,
1720
>
1721
>
NewWorkflowSnapshot: nil,
1722
>
NewWorkflowEvents: nil,
1723
>
1724
>
CurrentWorkflowMutation: nil,
1725
>
CurrentWorkflowEvents: nil,
1726
>
})
1727
>
s.IsType(&p.CurrentWorkflowConditionFailedError{}, err)
1728
>
1729
>
s.AssertMSEqualWithDB(chasm.WorkflowArchetypeID, baseSnapshot)
1730
>
s.AssertHEPrefixWithDB(baseBranchToken, baseEvents)
1731
>
}
1732
1733
func (s *ExecutionMutableStateSuite) TestConflictResolve_ResetCurrent_Conflict() {