|
@@ -6,7 +6,8 @@
|
|
|
[frontend.handler.page :as page-handler]
|
|
[frontend.handler.page :as page-handler]
|
|
|
[frontend.db :as db]
|
|
[frontend.db :as db]
|
|
|
[frontend.db.fix :as db-fix]
|
|
[frontend.db.fix :as db-fix]
|
|
|
- [frontend.handler.editor :as editor-handler]))
|
|
|
|
|
|
|
+ [frontend.handler.editor :as editor-handler]
|
|
|
|
|
+ [goog.dom :as gdom]))
|
|
|
|
|
|
|
|
;; FIXME: merge properties from both pages
|
|
;; FIXME: merge properties from both pages
|
|
|
|
|
|
|
@@ -27,7 +28,7 @@
|
|
|
(deftest rename-test
|
|
(deftest rename-test
|
|
|
(testing "Case change"
|
|
(testing "Case change"
|
|
|
(let [page (db/entity [:block/name "test"])]
|
|
(let [page (db/entity [:block/name "test"])]
|
|
|
- (db-page-handler/rename! "test" "Test")
|
|
|
|
|
|
|
+ (db-page-handler/rename! "test" "Test" false false)
|
|
|
(let [entity (db/entity [:block/name "test"])]
|
|
(let [entity (db/entity [:block/name "test"])]
|
|
|
(is (= "Test" (:block/original-name entity)))
|
|
(is (= "Test" (:block/original-name entity)))
|
|
|
;; db id not changed
|
|
;; db id not changed
|
|
@@ -35,26 +36,28 @@
|
|
|
|
|
|
|
|
(testing "Name changed"
|
|
(testing "Name changed"
|
|
|
(let [page (db/entity [:block/name "test"])]
|
|
(let [page (db/entity [:block/name "test"])]
|
|
|
- (db-page-handler/rename! "Test" "New name")
|
|
|
|
|
|
|
+ (db-page-handler/rename! "Test" "New name" false false)
|
|
|
(let [entity (db/entity [:block/name "new name"])]
|
|
(let [entity (db/entity [:block/name "new name"])]
|
|
|
(is (= "New name" (:block/original-name entity)))
|
|
(is (= "New name" (:block/original-name entity)))
|
|
|
(is (= (:db/id page) (:db/id entity))))))
|
|
(is (= (:db/id page) (:db/id entity))))))
|
|
|
|
|
|
|
|
(testing "Merge existing page"
|
|
(testing "Merge existing page"
|
|
|
- (page-handler/create! "Existing page" {:redirect? false :create-first-block? true})
|
|
|
|
|
- (db-page-handler/rename! "New name" "Existing page")
|
|
|
|
|
- (let [e1 (db/entity [:block/name "new name"])
|
|
|
|
|
- e2 (db/entity [:block/name "existing page"])]
|
|
|
|
|
|
|
+ (with-redefs [gdom/getElement (constantly #js {:id nil})
|
|
|
|
|
+ editor-handler/edit-block! (constantly nil)]
|
|
|
|
|
+ (page-handler/create! "Existing page" {:redirect? false :create-first-block? true})
|
|
|
|
|
+ (db-page-handler/rename! "New name" "Existing page" false false)
|
|
|
|
|
+ (let [e1 (db/entity [:block/name "new name"])
|
|
|
|
|
+ e2 (db/entity [:block/name "existing page"])]
|
|
|
;; Old page deleted
|
|
;; Old page deleted
|
|
|
- (is (nil? e1))
|
|
|
|
|
|
|
+ (is (nil? e1))
|
|
|
;; Blocks from both pages have been merged
|
|
;; Blocks from both pages have been merged
|
|
|
- (is (= (count (:block/_page e2)) (+ 1 (dec (count init-data)))))
|
|
|
|
|
|
|
+ (is (= (count (:block/_page e2)) (+ 1 (dec (count init-data)))))
|
|
|
;; Ensure there's no conflicts
|
|
;; Ensure there's no conflicts
|
|
|
- (is (empty? (db-fix/get-conflicts (db/get-db) (:db/id e2)))))))
|
|
|
|
|
|
|
+ (is (empty? (db-fix/get-conflicts (db/get-db) (:db/id e2))))))))
|
|
|
|
|
|
|
|
(deftest merge-with-empty-page
|
|
(deftest merge-with-empty-page
|
|
|
(page-handler/create! "Existing page" {:redirect? false :create-first-block? false})
|
|
(page-handler/create! "Existing page" {:redirect? false :create-first-block? false})
|
|
|
- (db-page-handler/rename! "Test" "Existing page")
|
|
|
|
|
|
|
+ (db-page-handler/rename! "Test" "Existing page" false false)
|
|
|
(let [e1 (db/entity [:block/name "test"])
|
|
(let [e1 (db/entity [:block/name "test"])
|
|
|
e2 (db/entity [:block/name "existing page"])]
|
|
e2 (db/entity [:block/name "existing page"])]
|
|
|
;; Old page deleted
|
|
;; Old page deleted
|
|
@@ -68,29 +71,31 @@
|
|
|
(testing "Renaming a page to an existing whiteboard page"
|
|
(testing "Renaming a page to an existing whiteboard page"
|
|
|
(page-handler/create! "Whiteboard page" {:redirect? false
|
|
(page-handler/create! "Whiteboard page" {:redirect? false
|
|
|
:whiteboard? true})
|
|
:whiteboard? true})
|
|
|
- (is (= :merge-whiteboard-pages (db-page-handler/rename! "Test" "Whiteboard page")))
|
|
|
|
|
- (is (= :merge-whiteboard-pages (db-page-handler/rename! "Whiteboard page" "Test")))))
|
|
|
|
|
|
|
+ (is (= :merge-whiteboard-pages (db-page-handler/rename! "Test" "Whiteboard page" false false)))
|
|
|
|
|
+ (is (= :merge-whiteboard-pages (db-page-handler/rename! "Whiteboard page" "Test" false false)))))
|
|
|
|
|
|
|
|
(deftest merge-existing-pages-should-update-ref-ids
|
|
(deftest merge-existing-pages-should-update-ref-ids
|
|
|
(testing "Merge existing page"
|
|
(testing "Merge existing page"
|
|
|
- (editor-handler/save-block! repo fbid "Block 1 [[Test]]")
|
|
|
|
|
- (page-handler/create! "Existing page" {:redirect? false :create-first-block? true})
|
|
|
|
|
- (db-page-handler/rename! "Test" "Existing page")
|
|
|
|
|
- (let [e1 (db/entity [:block/name "test"])
|
|
|
|
|
- e2 (db/entity [:block/name "existing page"])]
|
|
|
|
|
|
|
+ (with-redefs [gdom/getElement (constantly #js {:id nil})
|
|
|
|
|
+ editor-handler/edit-block! (constantly nil)]
|
|
|
|
|
+ (editor-handler/save-block! repo fbid "Block 1 [[Test]]")
|
|
|
|
|
+ (page-handler/create! "Existing page" {:redirect? false :create-first-block? true})
|
|
|
|
|
+ (db-page-handler/rename! "Test" "Existing page" false false)
|
|
|
|
|
+ (let [e1 (db/entity [:block/name "test"])
|
|
|
|
|
+ e2 (db/entity [:block/name "existing page"])]
|
|
|
;; Old page deleted
|
|
;; Old page deleted
|
|
|
- (is (nil? e1))
|
|
|
|
|
|
|
+ (is (nil? e1))
|
|
|
;; Blocks from both pages have been merged
|
|
;; Blocks from both pages have been merged
|
|
|
- (is (= (count (:block/_page e2)) (+ 1 (dec (count init-data)))))
|
|
|
|
|
|
|
+ (is (= (count (:block/_page e2)) (+ 1 (dec (count init-data)))))
|
|
|
;; Ensure there's no conflicts
|
|
;; Ensure there's no conflicts
|
|
|
- (is (empty? (db-fix/get-conflicts (db/get-db) (:db/id e2))))
|
|
|
|
|
|
|
+ (is (empty? (db-fix/get-conflicts (db/get-db) (:db/id e2))))
|
|
|
;; Content updated
|
|
;; Content updated
|
|
|
- (is (= "Block 1 [[Existing page]]" (:block/content (db/entity [:block/uuid fbid])))))))
|
|
|
|
|
|
|
+ (is (= "Block 1 [[Existing page]]" (:block/content (db/entity [:block/uuid fbid]))))))))
|
|
|
|
|
|
|
|
;; TODO: full coverage
|
|
;; TODO: full coverage
|
|
|
(deftest rename-namespace-pages
|
|
(deftest rename-namespace-pages
|
|
|
(testing "Rename a page to a namespaced one"
|
|
(testing "Rename a page to a namespaced one"
|
|
|
- (db-page-handler/rename! "Test" "Abc/Def Ghi/Jk")
|
|
|
|
|
|
|
+ (db-page-handler/rename! "Test" "Abc/Def Ghi/Jk" false false)
|
|
|
(let [e1 (db/entity [:block/name "test"])
|
|
(let [e1 (db/entity [:block/name "test"])
|
|
|
e2 (db/entity [:block/name "abc/def ghi/jk"])
|
|
e2 (db/entity [:block/name "abc/def ghi/jk"])
|
|
|
e3 (db/entity [:block/name "abc/def ghi"])
|
|
e3 (db/entity [:block/name "abc/def ghi"])
|