From 399b3f1b66ae99e4e60b9bf3b900147e1cb25921 Mon Sep 17 00:00:00 2001 From: ikappaki Date: Tue, 20 Dec 2022 21:22:30 +0000 Subject: [PATCH] Use temp repl buffer for client local vars tests It solves an issue with recycled buffers on master. It also reduces tests to the `cider-register-repl-type` cases. The shadow and nbb tests have been removed since they are covered by the corresponding integration tests. --- test/cider-tests.el | 105 +++++++++++++++++--------------------------- 1 file changed, 41 insertions(+), 64 deletions(-) diff --git a/test/cider-tests.el b/test/cider-tests.el index 2705bef02..baf1d3fc3 100644 --- a/test/cider-tests.el +++ b/test/cider-tests.el @@ -588,70 +588,47 @@ (after-each (setq cider-cljs-repl-types -cider-cljs-repl-types)) - (describe "sets nrepl client local vars correctly" - (it "for nbb project" - (let* ((server-process (nrepl-start-mock-server-process)) - (server-buffer (process-buffer server-process))) - ;; wait for the connection to be established - (nrepl-tests-poll-until (local-variable-p 'nrepl-endpoint server-buffer) 5) - (let ((client-buffer (cider-connect-sibling-cljs - '(:cljs-repl-type nbb) server-buffer))) - - ;; native cljs REPL - (expect (buffer-local-value 'cider-repl-type client-buffer) - :to-equal 'cljs) - (expect (buffer-local-value 'cider-repl-cljs-upgrade-pending client-buffer) - :to-equal nil) - (expect (buffer-local-value 'cider-repl-init-function client-buffer) - :to-be nil) - (delete-process (get-buffer-process client-buffer))))) - (it "for shadow project" - (let* ((cider-shadow-default-options "a-shadow-alias") - (server-process (nrepl-start-mock-server-process)) - (server-buffer (process-buffer server-process))) - ;; wait for the connection to be established - (nrepl-tests-poll-until (local-variable-p 'nrepl-endpoint server-buffer) 5) - ;; starts as clj REPL and requires a form to switch over to cljs - (let ((client-buffer (cider-connect-sibling-cljs - '(:cljs-repl-type shadow) server-buffer))) - (expect (buffer-local-value 'cider-repl-type client-buffer) - :to-equal 'cljs) - (expect (buffer-local-value 'cider-repl-cljs-upgrade-pending client-buffer) - :to-equal t) - (expect (buffer-local-value 'cider-repl-init-function client-buffer) - :not :to-be nil) - (delete-process (get-buffer-process client-buffer))))) - (it "for a custom cljs REPL type project" - (cider-register-cljs-repl-type 'native-cljs) - (let* ((server-process (nrepl-start-mock-server-process)) - (server-buffer (process-buffer server-process))) - ;; wait for the connection to be established - (nrepl-tests-poll-until (local-variable-p 'nrepl-endpoint server-buffer) 5) - (let ((client-buffer (cider-connect-sibling-cljs - '(:cljs-repl-type native-cljs) - server-buffer))) - (expect (buffer-local-value 'cider-repl-type client-buffer) - :to-equal 'cljs) - (expect (buffer-local-value 'cider-repl-cljs-upgrade-pending client-buffer) - :to-equal nil) - (delete-process (get-buffer-process client-buffer))))) - (it "for a custom REPL type project that needs to switch to cljs" - (cider-register-cljs-repl-type - 'not-cljs-initially "(form-to-switch-to-cljs-repl)") - (let* ((server-process (nrepl-start-mock-server-process)) - (server-buffer (process-buffer server-process))) - ;; wait for the connection to be established - (nrepl-tests-poll-until (local-variable-p 'nrepl-endpoint server-buffer) 5) - (let ((client-buffer (cider-connect-sibling-cljs - '(:cljs-repl-type not-cljs-initially) - server-buffer))) - (expect (buffer-local-value 'cider-repl-type client-buffer) - :to-equal 'cljs) - (expect (buffer-local-value 'cider-repl-cljs-upgrade-pending client-buffer) - :to-equal t) - (expect (buffer-local-value 'cider-repl-init-function client-buffer) - :not :to-be nil) - (delete-process (get-buffer-process client-buffer))))))) + (describe "sets nrepl client buffer local vars correctly" + ;; we only care to test in the below that some well specified local vars are + ;; set in the nREPL client buffer at start up. To do so, we bring up the + ;; mock server and call `cider-connect-sibling-cljs` to establish the + ;; connection. + (it "for a custom cljs REPL type project" + (with-temp-buffer + (cider-register-cljs-repl-type 'native-cljs) + (let* ((server-process (nrepl-start-mock-server-process)) + (server-buffer (process-buffer server-process))) + ;; wait for the connection to be established + (nrepl-tests-poll-until (local-variable-p 'nrepl-endpoint server-buffer) 5) + (let ((client-buffer (cider-connect-sibling-cljs + `(:cljs-repl-type native-cljs :repl-buffer ,(current-buffer)) + server-buffer))) + (expect (buffer-local-value 'cider-repl-type client-buffer) + :to-equal 'cljs) + (expect (buffer-local-value 'cider-repl-cljs-upgrade-pending client-buffer) + :to-equal nil) + ;; kill server + (delete-process (get-buffer-process client-buffer)))))) + (it "for a custom REPL type project that needs to switch to cljs" + (with-temp-buffer + (cider-register-cljs-repl-type + 'not-cljs-initially "(form-to-switch-to-cljs-repl)") + (let* ((server-process (nrepl-start-mock-server-process)) + (server-buffer (process-buffer server-process))) + ;; wait for the connection to be established + (nrepl-tests-poll-until (local-variable-p 'nrepl-endpoint server-buffer) 5) + (let ((client-buffer (cider-connect-sibling-cljs + `(:cljs-repl-type not-cljs-initially + :repl-buffer ,(current-buffer)) + server-buffer))) + (expect (buffer-local-value 'cider-repl-type client-buffer) + :to-equal 'cljs) + (expect (buffer-local-value 'cider-repl-cljs-upgrade-pending client-buffer) + :to-equal t) + (expect (buffer-local-value 'cider-repl-init-function client-buffer) + :not :to-be nil) + ;; kill server + (delete-process (get-buffer-process client-buffer)))))))) (provide 'cider-tests)