@@ -5184,6 +5184,18 @@ class TestModelSyncTrigger(tb.ModelTestCase):
51845184 }
51855185 );
51865186 };
5187+ type TriggerInsertComputed {
5188+ n: int64;
5189+ trigger update_target after insert
5190+ for each do (
5191+ update TestInsert
5192+ set {
5193+ val := .val + __new__.n
5194+ }
5195+ );
5196+
5197+ test_vals := TestInsert.val;
5198+ };
51875199 type TriggerInsertWithLink {
51885200 n: int64;
51895201 test: TestInsert;
@@ -5209,6 +5221,18 @@ class TestModelSyncTrigger(tb.ModelTestCase):
52095221 }
52105222 );
52115223 };
5224+ type TriggerUpdateComputed {
5225+ n: int64;
5226+ trigger update_target after update
5227+ for each do (
5228+ update TestUpdate
5229+ set {
5230+ val := .val + __new__.n
5231+ }
5232+ );
5233+
5234+ test_vals := TestUpdate.val;
5235+ };
52125236 """
52135237
52145238 def test_model_sync_trigger_insert_01 (self ):
@@ -5231,6 +5255,17 @@ def test_model_sync_trigger_insert_01(self):
52315255 self .assertEqual (test_obj .val , 6 )
52325256
52335257 def test_model_sync_trigger_insert_02 (self ):
5258+ # Insert trigger, computed modified by trigger
5259+ from models .TestModelSyncTrigger import default
5260+
5261+ test_obj = default .TestInsert (val = 0 )
5262+ self .client .sync (test_obj )
5263+
5264+ trigger = default .TriggerInsertComputed (n = 1 )
5265+ self .client .sync (test_obj , trigger )
5266+ self .assertEqual (trigger .test_vals , (1 ,))
5267+
5268+ def test_model_sync_trigger_insert_03 (self ):
52345269 # Insert trigger
52355270 # Link will cause test objs to be batched before trigger objs
52365271 from models .TestModelSyncTrigger import default
@@ -5268,3 +5303,15 @@ def test_model_sync_trigger_update_01(self):
52685303 trigger .n = 3
52695304 self .client .sync (test_obj , trigger )
52705305 self .assertEqual (test_obj .val , 6 )
5306+
5307+ def test_model_sync_trigger_update_02 (self ):
5308+ # Update trigger, computed modified by trigger
5309+ from models .TestModelSyncTrigger import default
5310+
5311+ test_obj = default .TestUpdate (val = 0 )
5312+ trigger = default .TriggerUpdateComputed (n = 0 )
5313+ self .client .sync (test_obj , trigger )
5314+
5315+ trigger .n = 1
5316+ self .client .sync (test_obj , trigger )
5317+ self .assertEqual (trigger .test_vals , (1 ,))
0 commit comments