mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-13 04:48:53 +00:00
### TL;DR Refactor space-triggered AI Widget activation logic from `keydown` to `keypress` event listeners ### Background The `keydown` event triggered by a space may originate from: 1. Normal space insertion 2. Space triggered by input method confirming candidate words In scenarios like (2), some browsers (see [ISSUE](https://github.com/toeverything/AFFiNE/issues/11541)) and input method callbacks produce events identical to scenario (1),making it impossible to distinguish between the two. To fix this, the space-activated AI listener uses the `keypress` event: In scenario 2, `event.which !== 32` (may be `30430` or other values) can be used to differentiate from scenario 1. > CLOSE BS-3081
19 lines
515 B
TypeScript
19 lines
515 B
TypeScript
import { expect } from '@playwright/test';
|
|
|
|
import { test } from '../base/base-test';
|
|
|
|
test.describe('AIBasic/Guidance', () => {
|
|
test.beforeEach(async ({ page, utils }) => {
|
|
await utils.testUtils.setupTestEnvironment(page);
|
|
});
|
|
|
|
test('should show AI panel when space is pressed on empty paragraph', async ({
|
|
page,
|
|
utils,
|
|
}) => {
|
|
await utils.editor.focusToEditor(page);
|
|
await page.keyboard.press('Space');
|
|
await expect(page.locator('affine-ai-panel-widget')).toBeVisible();
|
|
});
|
|
});
|