Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

selection.test.ts 2.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import TestState, { rectangleId, arrowId } from './test-utils'
  2. describe('selection', () => {
  3. const tt = new TestState()
  4. it('selects a shape', () => {
  5. tt.deselectAll().clickShape(rectangleId)
  6. expect(tt.idsAreSelected([rectangleId])).toBe(true)
  7. })
  8. it('selects and deselects a shape', () => {
  9. tt.deselectAll().clickShape(rectangleId).clickCanvas()
  10. expect(tt.idsAreSelected([])).toBe(true)
  11. })
  12. it('selects multiple shapes', () => {
  13. tt.deselectAll()
  14. .clickShape(rectangleId)
  15. .clickShape(arrowId, { shiftKey: true })
  16. expect(tt.idsAreSelected([rectangleId, arrowId])).toBe(true)
  17. })
  18. it('shift-selects to deselect shapes', () => {
  19. tt.deselectAll()
  20. .clickShape(rectangleId)
  21. .clickShape(arrowId, { shiftKey: true })
  22. .clickShape(rectangleId, { shiftKey: true })
  23. expect(tt.idsAreSelected([arrowId])).toBe(true)
  24. })
  25. it('single-selects shape in selection on click', () => {
  26. tt.deselectAll()
  27. .clickShape(rectangleId)
  28. .clickShape(arrowId, { shiftKey: true })
  29. .clickShape(arrowId)
  30. expect(tt.idsAreSelected([arrowId])).toBe(true)
  31. })
  32. it('single-selects shape in selection on pointerup only', () => {
  33. tt.deselectAll()
  34. .clickShape(rectangleId)
  35. .clickShape(arrowId, { shiftKey: true })
  36. expect(tt.idsAreSelected([rectangleId, arrowId])).toBe(true)
  37. tt.startClick(arrowId)
  38. expect(tt.idsAreSelected([rectangleId, arrowId])).toBe(true)
  39. tt.stopClick(arrowId)
  40. expect(tt.idsAreSelected([arrowId])).toBe(true)
  41. })
  42. it('selects shapes if shift key is lifted before pointerup', () => {
  43. tt.deselectAll()
  44. .clickShape(rectangleId)
  45. .clickShape(arrowId, { shiftKey: true })
  46. .startClick(rectangleId, { shiftKey: true })
  47. .stopClick(rectangleId)
  48. expect(tt.idsAreSelected([rectangleId])).toBe(true)
  49. })
  50. it('does not select on meta-click', () => {
  51. tt.deselectAll().clickShape(rectangleId, { ctrlKey: true })
  52. expect(tt.idsAreSelected([])).toBe(true)
  53. })
  54. it('does not select on meta-shift-click', () => {
  55. tt.deselectAll().clickShape(rectangleId, { ctrlKey: true, shiftKey: true })
  56. expect(tt.idsAreSelected([])).toBe(true)
  57. })
  58. })