From 71339e51631d0c0bbf413c296f2cdfefb24e977f Mon Sep 17 00:00:00 2001 From: xificurC Date: Thu, 29 Aug 2024 15:45:33 +0200 Subject: [PATCH] [i/items] don't cancel shrank item-ps children --- src/hyperfiddle/incseq/items_eager_impl.cljc | 2 +- test/hyperfiddle/incseq/items_eager_impl_test.cljc | 11 +++-------- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/src/hyperfiddle/incseq/items_eager_impl.cljc b/src/hyperfiddle/incseq/items_eager_impl.cljc index 7cc5c78b6..77a4877b3 100644 --- a/src/hyperfiddle/incseq/items_eager_impl.cljc +++ b/src/hyperfiddle/incseq/items_eager_impl.cljc @@ -94,7 +94,7 @@ (run! (fn [i] (let [^Item item (a/get item* i)] (a/fset item -dead true) - (run! #(%) ((a/fget item -ps*))))) + (a/set item* i nil))) (range (- d n) d)))) (defn change! [^Ps ps diff] diff --git a/test/hyperfiddle/incseq/items_eager_impl_test.cljc b/test/hyperfiddle/incseq/items_eager_impl_test.cljc index 962f8cab2..73e5e9d8f 100644 --- a/test/hyperfiddle/incseq/items_eager_impl_test.cljc +++ b/test/hyperfiddle/incseq/items_eager_impl_test.cljc @@ -181,7 +181,7 @@ _ (q ::none) _ (t/is (= ::none (q)))])) -(t/deftest shrink-terminates-idle-item-ps +(t/deftest shrink-idle-item-ps (let [q (->mq) _ (q (assoc (d/empty-diff 1) :grow 1 :change {0 :foo})) ; what input will return on transfer items (spawn-ps q) @@ -195,15 +195,12 @@ shrink1 (assoc (d/empty-diff 1) :shrink 1) _ (q shrink1) _ (in-step) - _ (t/is (= :item0-step (q))) _ (t/is (= :items-step (q))) _ (t/is (= shrink1 @items)) - _ (t/is (thrown? Cancelled @item0)) - _ (t/is (= :item0-done (q))) _ (q ::none) _ (t/is (= ::none (q)))])) -(t/deftest shrink-terminates-stepped-item-ps +(t/deftest shrink-stepped-item-ps (let [q (->mq) _ (q (assoc (d/empty-diff 1) :grow 1 :change {0 :foo})) ; what input will return on transfer items (spawn-ps q) @@ -211,15 +208,13 @@ _ (t/is (= :items-step (q))) diff @items _ (t/is (= (assoc (d/empty-diff 1) :grow 1) (assoc diff :change {}))) - item0 ((-> diff :change (get 0)) #(q :item0-step) #(q :item0-done)) + _item0 ((-> diff :change (get 0)) #(q :item0-step) #(q :item0-done)) _ (t/is (= :item0-step (q))) shrink1 (assoc (d/empty-diff 1) :shrink 1) _ (q shrink1) _ (in-step) _ (t/is (= :items-step (q))) _ (t/is (= shrink1 @items)) - _ (t/is (thrown? Cancelled @item0)) - _ (t/is (= :item0-done (q))) _ (q ::none) _ (t/is (= ::none (q)))]))