plugins.spec.ts 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import { expect } from '@playwright/test'
  2. import { test } from './fixtures'
  3. import {loadLocalE2eTestsPlugin } from './logseq-api.spec'
  4. import { callPageAPI } from './utils'
  5. test.skip('enabled plugin system default', async ({ page }) => {
  6. const callAPI = callPageAPI.bind(null, page)
  7. const pluginEnabled = await callAPI('get_state_from_store', 'plugin/enabled')
  8. await expect(pluginEnabled).toBe(true)
  9. expect(await page.evaluate(`typeof logseq.api.get_current_graph`))
  10. .toBe('function')
  11. const currentGraph = await callAPI('get_current_graph')
  12. expect(Object.keys(currentGraph)).toEqual(['url', 'name', 'path'])
  13. })
  14. test.skip('play a plugin<logseq-journals-calendar> from the Marketplace', async ({ page }) => {
  15. await page.keyboard.press('t+p')
  16. const searchInput = page.locator('.search-ctls .form-input')
  17. await searchInput.type('journals')
  18. const pluginCards = page.locator('.cp__plugins-item-card')
  19. if (await pluginCards.count()) {
  20. await pluginCards.locator('.ctl .ls-icon-settings').hover()
  21. await page.locator('text=Uninstall').click()
  22. const confirmYes = page.locator('button').locator('text=Yes')
  23. await confirmYes.click()
  24. }
  25. // install a plugin from Marketplace
  26. await page.locator('button').locator('text=Marketplace').click()
  27. await page.locator('text=Journals calendar')
  28. await page.locator('.cp__plugins-item-card').first().locator('text=Install').click()
  29. // wait for the plugin installed
  30. await page.locator('.cp__plugins-item-card').first().locator('text=Installed')
  31. await page.locator('a.ui__modal-close').click()
  32. // toolbar plugins manager
  33. const pluginFlag = page.locator('.toolbar-plugins-manager-trigger')
  34. await expect(pluginFlag).toBeVisible()
  35. await pluginFlag.click()
  36. await expect(pluginFlag.locator('text=Plugins')).toBeVisible()
  37. await expect(pluginFlag.locator('text=Settings')).toBeVisible()
  38. await page.locator('text=goto-today').click()
  39. await page.locator('body').click()
  40. const goToToday = page.locator('#logseq-journals-calendar--goto-today').locator('a.button')
  41. await expect(goToToday).toBeVisible()
  42. await goToToday.click()
  43. // TODO: debug
  44. await expect(page.locator('body[data-page="page"]')).toBeVisible()
  45. })
  46. test(`play a plugin from local`, async ({ page }) => {
  47. const callAPI = callPageAPI.bind(null, page)
  48. const _pLoaded = await loadLocalE2eTestsPlugin(page)
  49. const loc = page.locator('#a-plugin-for-e2e-tests')
  50. await loc.waitFor({ state: 'visible' })
  51. await callAPI(`push_state`, 'page', {name: 'contents'})
  52. const b = await callAPI(`append_block_in_page`, 'Contents', 'target e2e block')
  53. expect(typeof b?.uuid).toBe('string')
  54. await expect(page.locator('text=[DB] hook: changed')).toBeVisible()
  55. // 65a0beee-7e01-4e72-8d38-089d923a63de
  56. await callAPI(`insert_block`, b.uuid,
  57. 'new custom uuid block', { customUUID: '65a0beee-7e01-4e72-8d38-089d923a63de' })
  58. await expect(page.locator('text=[DB] hook: block changed')).toBeVisible()
  59. // await page.waitForSelector('#test-pause')
  60. })