|  | @@ -0,0 +1,73 @@
 | 
	
		
			
				|  |  | +(ns logseq.e2e.reference-test
 | 
	
		
			
				|  |  | +  (:require
 | 
	
		
			
				|  |  | +   [clojure.test :refer [deftest testing is use-fixtures]]
 | 
	
		
			
				|  |  | +   [logseq.e2e.assert :as assert]
 | 
	
		
			
				|  |  | +   [logseq.e2e.block :as b]
 | 
	
		
			
				|  |  | +   [logseq.e2e.fixtures :as fixtures]
 | 
	
		
			
				|  |  | +   [logseq.e2e.keyboard :as k]
 | 
	
		
			
				|  |  | +   [logseq.e2e.util :as util]
 | 
	
		
			
				|  |  | +   [wally.repl :as repl]))
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +(use-fixtures :once fixtures/open-page)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +(use-fixtures :each fixtures/new-logseq-page)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +;; block references
 | 
	
		
			
				|  |  | +(deftest self-reference
 | 
	
		
			
				|  |  | +  (testing "self reference"
 | 
	
		
			
				|  |  | +    (b/new-block "b2")
 | 
	
		
			
				|  |  | +    (b/copy)
 | 
	
		
			
				|  |  | +    (b/paste)
 | 
	
		
			
				|  |  | +    (util/exit-edit)
 | 
	
		
			
				|  |  | +    (assert/assert-selected-block-text "b2b2")))
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +(deftest mutual-reference
 | 
	
		
			
				|  |  | +  (testing "mutual reference"
 | 
	
		
			
				|  |  | +    (b/new-blocks ["b1" "b2"])
 | 
	
		
			
				|  |  | +    (b/copy)
 | 
	
		
			
				|  |  | +    (k/arrow-up)
 | 
	
		
			
				|  |  | +    (b/wait-editor-text "b1")
 | 
	
		
			
				|  |  | +    (b/paste)
 | 
	
		
			
				|  |  | +    (b/copy)
 | 
	
		
			
				|  |  | +    (k/arrow-down)
 | 
	
		
			
				|  |  | +    (b/wait-editor-text "b2")
 | 
	
		
			
				|  |  | +    (b/paste)
 | 
	
		
			
				|  |  | +    (util/exit-edit)
 | 
	
		
			
				|  |  | +    (b/assert-blocks-visible ["b1b2" "b2b1"])))
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +(deftest parent-reference
 | 
	
		
			
				|  |  | +  (testing "parent reference"
 | 
	
		
			
				|  |  | +    (b/new-blocks ["b1" "b2"])
 | 
	
		
			
				|  |  | +    (b/indent)
 | 
	
		
			
				|  |  | +    (b/copy)
 | 
	
		
			
				|  |  | +    (k/arrow-up)
 | 
	
		
			
				|  |  | +    (b/wait-editor-text "b1")
 | 
	
		
			
				|  |  | +    (b/paste)
 | 
	
		
			
				|  |  | +    (b/copy)
 | 
	
		
			
				|  |  | +    (k/arrow-down)
 | 
	
		
			
				|  |  | +    (b/wait-editor-text "b2")
 | 
	
		
			
				|  |  | +    (b/paste)
 | 
	
		
			
				|  |  | +    (util/exit-edit)
 | 
	
		
			
				|  |  | +    (b/assert-blocks-visible ["b1b2" "b2b1"])))
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +(deftest cycle-reference
 | 
	
		
			
				|  |  | +  (testing "cycle reference"
 | 
	
		
			
				|  |  | +    (b/new-blocks ["b1" "b2" "b3"])
 | 
	
		
			
				|  |  | +    (b/jump-to-block "b1")
 | 
	
		
			
				|  |  | +    (assert/assert-editor-mode)
 | 
	
		
			
				|  |  | +    (b/copy)
 | 
	
		
			
				|  |  | +    (k/arrow-down)
 | 
	
		
			
				|  |  | +    (b/wait-editor-text "b2")
 | 
	
		
			
				|  |  | +    (b/paste)
 | 
	
		
			
				|  |  | +    (b/copy)
 | 
	
		
			
				|  |  | +    (k/arrow-down)
 | 
	
		
			
				|  |  | +    (b/wait-editor-text "b3")
 | 
	
		
			
				|  |  | +    (b/paste)
 | 
	
		
			
				|  |  | +    (b/copy)
 | 
	
		
			
				|  |  | +    (b/jump-to-block "b1")
 | 
	
		
			
				|  |  | +    (assert/assert-editor-mode)
 | 
	
		
			
				|  |  | +    (b/paste)
 | 
	
		
			
				|  |  | +    (util/exit-edit)
 | 
	
		
			
				|  |  | +    (b/assert-blocks-visible ["b1b3b2" "b2b1b3" "b3b2b1"])))
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +;; TODO: page references
 |