index.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. async function main () {
  2. logseq.UI.showMsg('Hi, e2e tests from a local plugin!')
  3. // await (new Promise(resolve => setTimeout(resolve, 3000)))
  4. let msg = 0
  5. const logPane = (input) => {
  6. logseq.provideUI({
  7. key: `log-${++msg}`,
  8. path: `#a-plugin-for-e2e-tests > ul`,
  9. template: `<li>${input}</li>`,
  10. })
  11. }
  12. // log pane
  13. logseq.provideUI({
  14. key: 'logseq-e2e-tests',
  15. template: `<div id="a-plugin-for-e2e-tests">
  16. <h2>Plugin e2e tests ...</h2>
  17. <ul></ul>
  18. </div>`,
  19. path: 'body',
  20. style: {
  21. width: '300px',
  22. position: 'fixed',
  23. top: '300px',
  24. left: '300px',
  25. zIndex: 99,
  26. },
  27. })
  28. logseq.provideStyle(`
  29. #a-plugin-for-e2e-tests {
  30. padding: 20px;
  31. background-color: red;
  32. color: white;
  33. width: 300px;
  34. }
  35. `)
  36. let dbChangedDid = false
  37. let blockChangedDid = false
  38. // hook db change
  39. logseq.DB.onChanged((e) => {
  40. if (dbChangedDid) return
  41. logPane(`[DB] hook: changed`)
  42. dbChangedDid = true
  43. })
  44. logseq.DB.onBlockChanged('65a0beee-7e01-4e72-8d38-089d923a63de',
  45. (e) => {
  46. if (blockChangedDid) return
  47. logPane(`[DB] hook: block changed`)
  48. blockChangedDid = true
  49. })
  50. }
  51. // bootstrap
  52. logseq.ready(main).catch(null)