aboutsummaryrefslogtreecommitdiffstats
path: root/test/unit/kernel/Branch.ml
diff options
context:
space:
mode:
authorMarcos Magueta <maguetamarcos@gmail.com>2026-10-31 02:28:17 -0300
committerMarcos Magueta <maguetamarcos@gmail.com>2026-10-31 02:28:17 -0300
commit71856adc5ff5d64c7be1b37854fc8a205d55e482 (patch)
tree25770cf98154c0da696878228783ac8faecde08b /test/unit/kernel/Branch.ml
parente76cc6f862656a3ada9fa3d4418bd060df937885 (diff)
downloadRNT-71856adc5ff5d64c7be1b37854fc8a205d55e482.tar.gz
RNT-71856adc5ff5d64c7be1b37854fc8a205d55e482.zip
update tests and add beam tests
Diffstat (limited to 'test/unit/kernel/Branch.ml')
-rw-r--r--test/unit/kernel/Branch.ml20
1 files changed, 19 insertions, 1 deletions
diff --git a/test/unit/kernel/Branch.ml b/test/unit/kernel/Branch.ml
index a0f201d..10789cd 100644
--- a/test/unit/kernel/Branch.ml
+++ b/test/unit/kernel/Branch.ml
@@ -256,6 +256,23 @@ let a_denial_program_runs_once_per_judgement () =
(K.Scope.publish root ~branch:"master" ~home:library ~denials:["dated", Some dated] []) );
check int "and its program ran once to judge it" 1 !evaluations
+let a_denial_binds_an_attribute () =
+ let root = fresh ["Date"] in
+ let codd =
+ K.EphemeralRelation.of_program title
+ Rnt.Evaluators.FOL.(
+ program
+ (Where (Base (K.Scope.path library "book"), BatMap.String.singleton "title" (s "Codd"))) )
+ in
+ publish root ~denials:["no-codd", Some codd] [];
+ check bool "a book the rule binds is refused" true
+ (Result.is_error
+ (K.Scope.publish root ~branch:"master" ~home:library ["book", Some (books ["Date"; "Codd"])]) );
+ publish root ["book", Some (books ["Date"; "Darwen"])];
+ check (list Helpers.value) "any other book lands"
+ [s "Darwen"; s "Date"]
+ (read root (under master (K.Scope.path library "book")))
+
let suites () =
[ ( "kernel/branch",
[ test_case "reads-as-of-each-state" `Quick reads_as_of_each_state;
@@ -271,4 +288,5 @@ let suites () =
test_case "a-denial-without-end-cannot-be-installed" `Quick
a_denial_without_end_cannot_be_installed;
test_case "a-denial-program-runs-once-per-judgement" `Quick
- a_denial_program_runs_once_per_judgement ] ) ]
+ a_denial_program_runs_once_per_judgement;
+ test_case "a-denial-binds-an-attribute" `Quick a_denial_binds_an_attribute ] ) ]