* test: intialize testing environment
* test: add an example test for reference
* test: add simple navigation test
* some initial tests
* some changes
* name and other small changes
* permanently delete a note
* permanenlt delete a note
* test: improve test readability
I have added different id builders for building test ids. They make the tests more readable and fluent.
* test lock a note
* test add a note to notebook
* test favorite a note
* test pin a note
* test: further improve test readability
basically I refactored some frequently performed actions into helper functions
* test: check for presence of toast
* test: properly test pinned note
* test: increase tests reliability
* test: fix all tests
* perf: load 2co script & fonts when needed
* ci: initialize e2e gh test runner
* ci: do not run npm ci
* test: fix lock note test for all browsers
* ci: fix playwright tests
* ci: fix yaml syntax error
* ci: no need to use custom ssh-agent action for eslint
* test: improve lock a note test
* ci: add GH_DEPLOY_KEY env in eslint.yml
* test: check for state: "visible" in isPresent
* test: do not check for toast in lock a note test
* test: log crypto error to console
* test: skip "lock a note" test for now until further investigation
* ci: only run tests on firefox & chromium
* fix: fix useMediaQuery for WebKit browsers
* ci: try webkit once again
* properties tests
* test tag a color /properties
* test: run some tests sequentially and independently
* test: reenable all tests
* fix: user only able to type on character in title box
* test: skip lock/unlock tests in CI
* test edit a notebook
* test: fix all tests
* test: fix and add more notebook tests
* test: do not only run edit topics test
* test: make sure all notes tests pass
* test: skip add note to notebook tests for now
* test: make sure all tests pass
Co-authored-by: alihamuh <alihamuh@gmail.com>
this addresses a few things:
1. editting a locked note was excruciatingly slow due to synchronous crypto
2. libsodium is, unfortunately, synchronous hence it locks the UI
3. quill was sending unnecessary onChange events on every key stroke
How they are handled:
1 & 2. all crypto related functions have been moved to a web worker for asynchrony with synchronous as fallback
This allows for non-blocking crypto and fluid editting experience
3. onChange events are only sent when user stops typing
KNOWN ISSUES:
1. The word counter may be a bit slow. It should be moved into quill as a module.