Skip to content

Commit 3c73886

Browse files
ikappakibbatsov
authored andcommitted
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.
1 parent cda1f14 commit 3c73886

File tree

1 file changed

+41
-64
lines changed

1 file changed

+41
-64
lines changed

test/cider-tests.el

+41-64
Original file line numberDiff line numberDiff line change
@@ -588,70 +588,47 @@
588588
(after-each
589589
(setq cider-cljs-repl-types -cider-cljs-repl-types))
590590

591-
(describe "sets nrepl client local vars correctly"
592-
(it "for nbb project"
593-
(let* ((server-process (nrepl-start-mock-server-process))
594-
(server-buffer (process-buffer server-process)))
595-
;; wait for the connection to be established
596-
(nrepl-tests-poll-until (local-variable-p 'nrepl-endpoint server-buffer) 5)
597-
(let ((client-buffer (cider-connect-sibling-cljs
598-
'(:cljs-repl-type nbb) server-buffer)))
599-
600-
;; native cljs REPL
601-
(expect (buffer-local-value 'cider-repl-type client-buffer)
602-
:to-equal 'cljs)
603-
(expect (buffer-local-value 'cider-repl-cljs-upgrade-pending client-buffer)
604-
:to-equal nil)
605-
(expect (buffer-local-value 'cider-repl-init-function client-buffer)
606-
:to-be nil)
607-
(delete-process (get-buffer-process client-buffer)))))
608-
(it "for shadow project"
609-
(let* ((cider-shadow-default-options "a-shadow-alias")
610-
(server-process (nrepl-start-mock-server-process))
611-
(server-buffer (process-buffer server-process)))
612-
;; wait for the connection to be established
613-
(nrepl-tests-poll-until (local-variable-p 'nrepl-endpoint server-buffer) 5)
614-
;; starts as clj REPL and requires a form to switch over to cljs
615-
(let ((client-buffer (cider-connect-sibling-cljs
616-
'(:cljs-repl-type shadow) server-buffer)))
617-
(expect (buffer-local-value 'cider-repl-type client-buffer)
618-
:to-equal 'cljs)
619-
(expect (buffer-local-value 'cider-repl-cljs-upgrade-pending client-buffer)
620-
:to-equal t)
621-
(expect (buffer-local-value 'cider-repl-init-function client-buffer)
622-
:not :to-be nil)
623-
(delete-process (get-buffer-process client-buffer)))))
624-
(it "for a custom cljs REPL type project"
625-
(cider-register-cljs-repl-type 'native-cljs)
626-
(let* ((server-process (nrepl-start-mock-server-process))
627-
(server-buffer (process-buffer server-process)))
628-
;; wait for the connection to be established
629-
(nrepl-tests-poll-until (local-variable-p 'nrepl-endpoint server-buffer) 5)
630-
(let ((client-buffer (cider-connect-sibling-cljs
631-
'(:cljs-repl-type native-cljs)
632-
server-buffer)))
633-
(expect (buffer-local-value 'cider-repl-type client-buffer)
634-
:to-equal 'cljs)
635-
(expect (buffer-local-value 'cider-repl-cljs-upgrade-pending client-buffer)
636-
:to-equal nil)
637-
(delete-process (get-buffer-process client-buffer)))))
638-
(it "for a custom REPL type project that needs to switch to cljs"
639-
(cider-register-cljs-repl-type
640-
'not-cljs-initially "(form-to-switch-to-cljs-repl)")
641-
(let* ((server-process (nrepl-start-mock-server-process))
642-
(server-buffer (process-buffer server-process)))
643-
;; wait for the connection to be established
644-
(nrepl-tests-poll-until (local-variable-p 'nrepl-endpoint server-buffer) 5)
645-
(let ((client-buffer (cider-connect-sibling-cljs
646-
'(:cljs-repl-type not-cljs-initially)
647-
server-buffer)))
648-
(expect (buffer-local-value 'cider-repl-type client-buffer)
649-
:to-equal 'cljs)
650-
(expect (buffer-local-value 'cider-repl-cljs-upgrade-pending client-buffer)
651-
:to-equal t)
652-
(expect (buffer-local-value 'cider-repl-init-function client-buffer)
653-
:not :to-be nil)
654-
(delete-process (get-buffer-process client-buffer)))))))
591+
(describe "sets nrepl client buffer local vars correctly"
592+
;; we only care to test in the below that some well specified local vars are
593+
;; set in the nREPL client buffer at start up. To do so, we bring up the
594+
;; mock server and call `cider-connect-sibling-cljs` to establish the
595+
;; connection.
596+
(it "for a custom cljs REPL type project"
597+
(with-temp-buffer
598+
(cider-register-cljs-repl-type 'native-cljs)
599+
(let* ((server-process (nrepl-start-mock-server-process))
600+
(server-buffer (process-buffer server-process)))
601+
;; wait for the connection to be established
602+
(nrepl-tests-poll-until (local-variable-p 'nrepl-endpoint server-buffer) 5)
603+
(let ((client-buffer (cider-connect-sibling-cljs
604+
`(:cljs-repl-type native-cljs :repl-buffer ,(current-buffer))
605+
server-buffer)))
606+
(expect (buffer-local-value 'cider-repl-type client-buffer)
607+
:to-equal 'cljs)
608+
(expect (buffer-local-value 'cider-repl-cljs-upgrade-pending client-buffer)
609+
:to-equal nil)
610+
;; kill server
611+
(delete-process (get-buffer-process client-buffer))))))
612+
(it "for a custom REPL type project that needs to switch to cljs"
613+
(with-temp-buffer
614+
(cider-register-cljs-repl-type
615+
'not-cljs-initially "(form-to-switch-to-cljs-repl)")
616+
(let* ((server-process (nrepl-start-mock-server-process))
617+
(server-buffer (process-buffer server-process)))
618+
;; wait for the connection to be established
619+
(nrepl-tests-poll-until (local-variable-p 'nrepl-endpoint server-buffer) 5)
620+
(let ((client-buffer (cider-connect-sibling-cljs
621+
`(:cljs-repl-type not-cljs-initially
622+
:repl-buffer ,(current-buffer))
623+
server-buffer)))
624+
(expect (buffer-local-value 'cider-repl-type client-buffer)
625+
:to-equal 'cljs)
626+
(expect (buffer-local-value 'cider-repl-cljs-upgrade-pending client-buffer)
627+
:to-equal t)
628+
(expect (buffer-local-value 'cider-repl-init-function client-buffer)
629+
:not :to-be nil)
630+
;; kill server
631+
(delete-process (get-buffer-process client-buffer))))))))
655632

656633
(provide 'cider-tests)
657634

0 commit comments

Comments
 (0)