whiteboards.spec.ts 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import { expect } from '@playwright/test'
  2. import { test } from './fixtures'
  3. test('enable whiteboards', async ({ page }) => {
  4. await page.click('#head .toolbar-dots-btn')
  5. await page.click('#head .dropdown-wrapper >> text=Settings')
  6. await page.click('.settings-modal a[data-id=features]')
  7. await page.click('text=Whiteboards >> .. >> .ui__toggle')
  8. await page.keyboard.press('Escape')
  9. await expect(page.locator('.nav-header .whiteboard')).toBeVisible()
  10. })
  11. test('create new whiteboard', async ({ page }) => {
  12. await page.click('.nav-header .whiteboard')
  13. await page.click('#tl-create-whiteboard')
  14. await expect(page.locator('.logseq-tldraw')).toBeVisible()
  15. })
  16. test('set whiteboard title', async ({ page }) => {
  17. const title = "my-whiteboard"
  18. await page.click('.whiteboard-page-title')
  19. await page.type('.whiteboard-page-title .title', title)
  20. await page.keyboard.press('Enter')
  21. await expect(page.locator('.whiteboard-page-title .title')).toContainText(title);
  22. })
  23. test('select rectangle tool', async ({ page }) => {
  24. await page.keyboard.press('8')
  25. await expect(page.locator('.tl-geometry-tools-pane-anchor [title="Rectangle (8)"]')).toHaveAttribute('data-selected', 'true')
  26. })
  27. test('draw a rectangle', async ({ page }) => {
  28. const canvas = await page.waitForSelector('.logseq-tldraw');
  29. const bounds = (await canvas.boundingBox())!;
  30. await page.keyboard.press('8')
  31. await page.mouse.move(bounds.x, bounds.y);
  32. await page.mouse.down();
  33. await page.mouse.move(bounds.x + bounds.width / 2, bounds.y + bounds.height / 2);
  34. await page.mouse.up();
  35. await expect(page.locator('.logseq-tldraw .tl-positioned-svg rect')).not.toHaveCount(0);
  36. })
  37. test('zoom in', async ({ page }) => {
  38. await page.click('#tl-zoom-in')
  39. await expect(page.locator('#tl-zoom')).toContainText('125%');
  40. })
  41. test('zoom out', async ({ page }) => {
  42. await page.click('#tl-zoom-out')
  43. await expect(page.locator('#tl-zoom')).toContainText('100%');
  44. })
  45. test('open context menu', async ({ page }) => {
  46. await page.locator('.logseq-tldraw').click({button: "right"})
  47. await expect(page.locator('.tl-context-menu')).toBeVisible()
  48. })
  49. test('close context menu on esc', async ({ page }) => {
  50. await page.keyboard.press('Escape')
  51. await expect(page.locator('.tl-context-menu')).toBeHidden()
  52. })