mirror of
https://github.com/logseq/logseq.git
synced 2026-04-24 22:25:01 +00:00
test(e2e): fix missing event_ property of KeyboardEvent in Google Closure Library
This commit is contained in:
4
.github/workflows/build.yml
vendored
4
.github/workflows/build.yml
vendored
@@ -181,6 +181,10 @@ jobs:
|
||||
- name: Ensure static yarn.lock is up to date
|
||||
run: git diff --exit-code static/yarn.lock
|
||||
|
||||
# If not building, the `event_` of `goog.event.KeyboardEvent` would be missing
|
||||
- name: Build app
|
||||
run: clojure -M:cljs compile app
|
||||
|
||||
- name: Run Playwright test
|
||||
run: xvfb-run -- yarn e2e-test
|
||||
env:
|
||||
|
||||
@@ -9,19 +9,20 @@ test(
|
||||
"but dont trigger RIME #3440 ",
|
||||
// cases should trigger [[]] #3251
|
||||
async ({ page }) => {
|
||||
for (let left_full_bracket of [
|
||||
kb_events.macos_pinyin_left_full_bracket,
|
||||
for (let [idx, left_full_bracket] of [
|
||||
kb_events.win10_pinyin_left_full_bracket,
|
||||
kb_events.macos_pinyin_left_full_bracket
|
||||
// TODO: support #3741
|
||||
// kb_events.win10_legacy_pinyin_left_full_bracket,
|
||||
]) {
|
||||
].entries()) {
|
||||
await createRandomPage(page)
|
||||
await page.type(':nth-match(textarea, 1)', "【")
|
||||
let check_text = "#3251 test " + idx
|
||||
await page.fill(':nth-match(textarea, 1)', check_text + "【")
|
||||
await dispatch_kb_events(page, ':nth-match(textarea, 1)', left_full_bracket)
|
||||
expect(await page.inputValue(':nth-match(textarea, 1)')).toBe('【')
|
||||
await page.type(':nth-match(textarea, 1)', "【")
|
||||
expect(await page.inputValue(':nth-match(textarea, 1)')).toBe(check_text + '【')
|
||||
await page.fill(':nth-match(textarea, 1)', check_text + "【【")
|
||||
await dispatch_kb_events(page, ':nth-match(textarea, 1)', left_full_bracket)
|
||||
expect(await page.inputValue(':nth-match(textarea, 1)')).toBe('[[]]')
|
||||
expect(await page.inputValue(':nth-match(textarea, 1)')).toBe(check_text + '[[]]')
|
||||
};
|
||||
|
||||
// dont trigger RIME #3440
|
||||
@@ -31,7 +32,7 @@ test(
|
||||
].entries()) {
|
||||
await createRandomPage(page)
|
||||
let check_text = "#3440 test " + idx
|
||||
await page.type(':nth-match(textarea, 1)', check_text)
|
||||
await page.fill(':nth-match(textarea, 1)', check_text)
|
||||
await dispatch_kb_events(page, ':nth-match(textarea, 1)', selecting_candidate_left_bracket)
|
||||
expect(await page.inputValue(':nth-match(textarea, 1)')).toBe(check_text)
|
||||
await dispatch_kb_events(page, ':nth-match(textarea, 1)', selecting_candidate_left_bracket)
|
||||
|
||||
@@ -4,15 +4,23 @@
|
||||
* https://stackoverflow.com/questions/8892238/detect-keyboard-layout-with-javascript
|
||||
* ***/
|
||||
|
||||
export let dispatch_kb_events = async function (page, selector, keyboard_events ){
|
||||
for (let idx in keyboard_events){
|
||||
let { event_type, event, latency } = keyboard_events[idx]
|
||||
await page.waitForTimeout(latency)
|
||||
await page.dispatchEvent(selector, event_type, event)
|
||||
}
|
||||
import { Page } from '@playwright/test'
|
||||
|
||||
interface RecordedEvent {
|
||||
event_type: string;
|
||||
event: any; // KeyboardEvent is too heavy
|
||||
latency: number;
|
||||
}
|
||||
|
||||
export let macos_pinyin_left_full_bracket = [
|
||||
export let dispatch_kb_events = async function (page: Page, selector: string, keyboard_events: RecordedEvent[] ){
|
||||
for (let kbev of keyboard_events){
|
||||
let { event_type, event, latency } = kbev
|
||||
await page.waitForTimeout(latency)
|
||||
await page.dispatchEvent(selector, event_type, event)
|
||||
}
|
||||
}
|
||||
|
||||
export let macos_pinyin_left_full_bracket: RecordedEvent[] = [
|
||||
{
|
||||
"event_type": "keydown",
|
||||
"event": {
|
||||
@@ -60,7 +68,7 @@ export let macos_pinyin_left_full_bracket = [
|
||||
}
|
||||
]
|
||||
|
||||
export let win10_pinyin_left_full_bracket = [
|
||||
export let win10_pinyin_left_full_bracket: RecordedEvent[] = [
|
||||
{
|
||||
"event_type": "keydown",
|
||||
"event": {
|
||||
@@ -128,7 +136,7 @@ export let win10_pinyin_left_full_bracket = [
|
||||
}
|
||||
]
|
||||
|
||||
export let win10_legacy_pinyin_left_full_bracket = [
|
||||
export let win10_legacy_pinyin_left_full_bracket: RecordedEvent[] = [
|
||||
{
|
||||
"event_type": "keydown",
|
||||
"event": {
|
||||
@@ -181,7 +189,7 @@ export let win10_legacy_pinyin_left_full_bracket = [
|
||||
}
|
||||
]
|
||||
|
||||
export let macos_pinyin_selecting_candidate_double_left_bracket = [
|
||||
export let macos_pinyin_selecting_candidate_double_left_bracket: RecordedEvent[] = [
|
||||
{
|
||||
"event_type": "keydown",
|
||||
"event": {
|
||||
@@ -349,7 +357,7 @@ export let macos_pinyin_selecting_candidate_double_left_bracket = [
|
||||
}
|
||||
]
|
||||
|
||||
export let win10_RIME_selecting_candidate_double_left_bracket = [
|
||||
export let win10_RIME_selecting_candidate_double_left_bracket: RecordedEvent[] = [
|
||||
{
|
||||
"event_type": "keydown",
|
||||
"event": {
|
||||
|
||||
Reference in New Issue
Block a user