diff --git a/modules/reitit-frontend/src/reitit/frontend/controllers.cljs b/modules/reitit-frontend/src/reitit/frontend/controllers.cljs index 8556314d..02024919 100644 --- a/modules/reitit-frontend/src/reitit/frontend/controllers.cljs +++ b/modules/reitit-frontend/src/reitit/frontend/controllers.cljs @@ -33,7 +33,7 @@ (pad-same-length new-controllers old-controllers)) (keep identity) vec)] - (doseq [controller (map :old changed-controllers)] + (doseq [controller (reverse (map :old changed-controllers))] (apply-controller controller :stop)) (doseq [controller (map :new changed-controllers)] (apply-controller controller :start)) diff --git a/test/cljs/reitit/frontend/controllers_test.cljs b/test/cljs/reitit/frontend/controllers_test.cljs index b4d2238c..27a44ff6 100644 --- a/test/cljs/reitit/frontend/controllers_test.cljs +++ b/test/cljs/reitit/frontend/controllers_test.cljs @@ -62,7 +62,7 @@ (swap! controller-state rfc/apply-controllers {:data {:controllers []}}) - (is (= [:stop-1 [:stop-3 1]] @log)) + (is (= [[:stop-3 1] :stop-1] @log)) (is (= [] @controller-state)) (reset! log [])) ))