Skip to content

Commit

Permalink
test: add some tests
Browse files Browse the repository at this point in the history
  • Loading branch information
tiensonqin committed Jun 22, 2021
1 parent f0af0f0 commit 69fa58f
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 5 deletions.
2 changes: 1 addition & 1 deletion cypress.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{}
{"defaultCommandTimeout": 10000}
50 changes: 46 additions & 4 deletions cypress/integration/app/window.cljs
Original file line number Diff line number Diff line change
@@ -1,10 +1,52 @@
(ns app.window
(:require-macros [latte.core :refer [describe beforeEach it]]))
(:require-macros [latte.core :refer [describe beforeEach before it]])
(:require [latte.chai :refer (expect)])
(:refer-clojure :exclude [first get]))

(def cy js/cy)

(defn back-to-home
[]
(.. cy (get ".cp__header-logo")
(first)
(click)))

(defn edit-block
[content]
(.. cy (get "textarea")
(first)
(click)
(type content)))


(describe "Window"
(beforeEach []
(.visit cy "https://example.cypress.io/commands/window"))
(it "cy.window() - get the global window object" []
(.should (.window cy) "have.property" "top")))
(.clearIndexedDB cy))
(before []
(.visit cy "http://localhost:3001"))

(it "Search" []
(.. cy
(get "#search-field")
(click)
(type "welcome to Logseq"))
(.. cy (get "#ui__ac-inner")
(should (fn [result]
(expect result :to.have.length 1))))
(back-to-home)

;; create new page
(.. cy
(get "#search-field")
(click)
(type "new page"))

(.wait cy 1000)

(.. cy
(get "#search-field")
(type "{enter}"))

;; edit bullet
(edit-block "this is my first bullet {enter}")
(edit-block "this is my second bullet {enter}")))
19 changes: 19 additions & 0 deletions cypress/support/commands.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,22 @@
//
// -- This will overwrite an existing command --
// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })

Cypress.Commands.add('clearIndexedDB', async () => {
const databases = await window.indexedDB.databases();

await Promise.all(
databases.map(
({ name }) =>
new Promise((resolve, reject) => {
const request = window.indexedDB.deleteDatabase(name);

request.addEventListener('success', resolve);
// Note: we need to also listen to the "blocked" event
// (and resolve the promise) due to https://stackoverflow.com/a/35141818
request.addEventListener('blocked', resolve);
request.addEventListener('error', reject);
}),
),
);
});

0 comments on commit 69fa58f

Please sign in to comment.