on master help sign in
add branchB transaction to test merge result WIP
8c77b4aAgentM
test/TransactionGraph/Merge.hs+17−5
@@ -9,8 +9,11 @@ import ProjectM36.Error
9import qualified Data.ByteString.Lazy as BS
9import qualified Data.ByteString.Lazy as BS
10import System.Exit
10import System.Exit
11import Data.Word
11import Data.Word
12+import ProjectM36.RelationalExpression
12import qualified Data.UUID as U
13import qualified Data.UUID as U
13import qualified ProjectM36.DatabaseContext as DBC
14import qualified ProjectM36.DatabaseContext as DBC
15+import Control.Monad.State hiding (join)
16+import ProjectM36.Relation (relationTrue)
14import Debug.Trace
17import Debug.Trace
15
18
16main :: IO ()
19main :: IO ()
@@ -98,10 +101,19 @@ testSelectedBranchMerge = TestCase $ do
98 graph <- basicTransactionGraph
101 graph <- basicTransactionGraph
99 assertGraph graph
102 assertGraph graph
100
103
104+ -- add another relvar to branchB
105+ branchBTrans <- assertMaybe (transactionForHead "branchB" graph) "failed to get branchB head"
106+ updatedBranchBContext <- case runState (evalContextExpr (Assign "branchBOnlyRelvar" (ExistingRelation relationTrue))) (transactionContext branchBTrans) of
107+ (Just err, _) -> assertFailure (show err) >> undefined
108+ (Nothing, context) -> pure context
109+ (_, graph') <- addTransaction "branchB" (fakeUUID 3) updatedBranchBContext branchBTrans graph
110+ --create the merge transaction in the graph
101− let eGraph' = mergeTransactions (fakeUUID 3) (fakeUUID 10) (SelectedBranchMergeStrategy "branchA") ("branchA", "branchB") graph
111+ let eGraph' = mergeTransactions (fakeUUID 4) (fakeUUID 10) (SelectedBranchMergeStrategy "branchA") ("branchA", "branchB") graph'
112+ putStrLn "SPAMMO"
113+
102− (DisconnectedTransaction _ mergedContext, graph') <- assertEither eGraph'
114+ (DisconnectedTransaction _ mergedContext, graph'') <- assertEither eGraph'
103− assertGraph graph'
115+ assertGraph graph''
104 --validate that the branchB was removed
116 --validate that the branchB was removed
105− rootTrans <- assertEither $ transactionForUUID (fakeUUID 1) graph'
117+ rootTrans <- assertEither $ transactionForUUID (fakeUUID 1) graph''
106− assertEqual "head still available" (transactionForHead "branchB" graph') Nothing
118+ assertEqual "head still available" (transactionForHead "branchB" graph'') Nothing
107 --assertEqual "bad merge" mergedContext (transactionContext rootTrans)
119 --assertEqual "bad merge" mergedContext (transactionContext rootTrans)