瀏覽代碼

test(e2e): add keyboard event simulation

Junyi Du 3 年之前
父節點
當前提交
75ab20e1e7
共有 2 個文件被更改,包括 69 次插入0 次删除
  1. 14 0
      e2e-tests/editor.spec.ts
  2. 55 0
      e2e-tests/util/keyboard-events.ts

+ 14 - 0
e2e-tests/editor.spec.ts

@@ -1,6 +1,19 @@
 import { expect } from '@playwright/test'
 import { test } from './fixtures'
 import { createRandomPage, IsMac } from './utils'
+import { press_with_events, macos_pinyin_left_full_bracket } from './util/keyboard-events'
+
+test('keyboard related issues', async ({ page }) => {
+  await createRandomPage(page)
+  await page.type(':nth-match(textarea, 1)', 'without events: ')
+  await page.type(':nth-match(textarea, 1)', "【")
+  await page.type(':nth-match(textarea, 1)', "【")
+
+  await page.type(':nth-match(textarea, 1)', ' | with events: ')
+  await press_with_events(page, ':nth-match(textarea, 1)', macos_pinyin_left_full_bracket)
+  await press_with_events(page, ':nth-match(textarea, 1)', macos_pinyin_left_full_bracket)
+  await page.pause()
+})
 
 test('hashtag and quare brackets in same line #4178', async ({ page }) => {
   await createRandomPage(page)
@@ -67,3 +80,4 @@ test('hashtag and quare brackets in same line #4178', async ({ page }) => {
 //     await page.keyboard.press('Control+Shift+v')
 //   }  
 // })
+  

+ 55 - 0
e2e-tests/util/keyboard-events.ts

@@ -0,0 +1,55 @@
+
+
+// typing 【
+export let press_with_events = async function (page, selector, { typedown, keyboard_events }){
+    await page.type(selector, typedown)
+    for (let idx in keyboard_events){
+      let ev = keyboard_events[idx]
+      await page.dispatchEvent(selector, ev["type"], ev)
+      await page.waitForTimeout(100)
+    }
+}
+
+export let macos_pinyin_left_full_bracket = {
+    "typedown": "【",
+    "keyboard_events": [{
+        "altKey": false,
+        "charCode": 0,
+        "ctrlKey": false,
+        "code": "BracketLeft",
+        "composed": true,
+        "detail": 0,
+        "event_": {
+            "code": "BracketLeft",
+            "isComposing": false,
+            "composed": true
+        },
+        "isComposing": false,
+        "isTrusted": true,
+        "key": "【",
+        "keyCode": 219,
+        "metaKey": false,
+        "repeat": false,
+        "returnValue": true,
+        "shiftKey": false,
+        "type": "keydown",
+        "which": 219,
+        "platformModifierKey": false
+    }, {
+        "altKey": false,
+        "charCode": 0,
+        "ctrlKey": false,
+        "event_": {
+            "code": "BracketLeft",
+            "isComposing": false,
+            "composed": true
+        },
+        "key": "【",
+        "keyCode": 219,
+        "metaKey": false,
+        "repeat": false,
+        "shiftKey": false,
+        "type": "keyup",
+        "platformModifierKey": false
+    }
+]}