@@ -4,25 +4,33 @@ import { Designer } from '../../src/designer/designer';
44import formSchema from '../fixtures/schema/form' ;
55import '../../src/designer/builtin-hotkey' ;
66import { fireEvent } from '@testing-library/react' ;
7+ import { isInLiveEditing } from '../../src/designer/builtin-hotkey' ;
78
89const editor = new Editor ( ) ;
910
1011let designer : Designer ;
11- beforeAll ( ( ) => {
12- globalContext . register ( editor , Editor ) ;
13- } ) ;
14- beforeEach ( ( ) => {
15- designer = new Designer ( { editor } ) ;
16- editor . set ( 'designer' , designer ) ;
17- designer . project . open ( formSchema ) ;
18- } ) ;
19- afterEach ( ( ) => {
20- designer = null ;
12+
13+ describe ( 'error scenarios' , ( ) => {
14+ it ( 'edtior not registered' , ( ) => {
15+ expect ( isInLiveEditing ( ) ) . toBeUndefined ( ) ;
16+ } ) ;
2117} ) ;
2218
2319// keyCode 对应表:https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode
2420// hotkey 模块底层用的 keyCode,所以还不能用 key / code 测试
2521describe ( '快捷键测试' , ( ) => {
22+ beforeAll ( ( ) => {
23+ globalContext . register ( editor , Editor ) ;
24+ } ) ;
25+ beforeEach ( ( ) => {
26+ designer = new Designer ( { editor } ) ;
27+ editor . set ( 'designer' , designer ) ;
28+ designer . project . open ( formSchema ) ;
29+ } ) ;
30+ afterEach ( ( ) => {
31+ designer = null ;
32+ } ) ;
33+
2634 it ( 'right' , ( ) => {
2735 const firstCardNode = designer . currentDocument ?. getNode ( 'node_k1ow3cbj' ) ! ;
2836 firstCardNode . select ( ) ;
@@ -242,8 +250,10 @@ describe('快捷键测试', () => {
242250 fireEvent . keyDown ( document , { keyCode : 46 } ) ;
243251 expect ( designer . currentDocument ?. selection . selected [ 0 ] ) . toBe ( 'page' ) ;
244252 } ) ;
253+
245254 it ( 'isFormEvent: true' , ( ) => {
246255 const inputDOMNode = document . createElement ( 'INPUT' ) ;
256+ document . body . appendChild ( inputDOMNode ) ;
247257 designer . currentDocument ?. selection . select ( 'page' ) ;
248258 // nothing happened
249259
@@ -289,5 +299,68 @@ describe('快捷键测试', () => {
289299 fireEvent . keyDown ( inputDOMNode , { keyCode : 46 } ) ;
290300 expect ( designer . currentDocument ?. selection . selected [ 0 ] ) . toBe ( 'page' ) ;
291301 } ) ;
302+
303+ it ( 'doc is null' , ( ) => {
304+ designer . currentDocument ?. selection . select ( 'page' ) ;
305+ designer . project . documents = [ ] ;
306+
307+ fireEvent . keyDown ( document , { keyCode : 39 } ) ;
308+
309+ fireEvent . keyDown ( document , { keyCode : 37 } ) ;
310+
311+ fireEvent . keyDown ( document , { keyCode : 40 } ) ;
312+
313+ fireEvent . keyDown ( document , { keyCode : 38 } ) ;
314+
315+ fireEvent . keyDown ( document , { keyCode : 39 , altKey : true } ) ;
316+
317+ fireEvent . keyDown ( document , { keyCode : 37 , altKey : true } ) ;
318+
319+ fireEvent . keyDown ( document , { keyCode : 40 , altKey : true } ) ;
320+
321+ fireEvent . keyDown ( document , { keyCode : 38 , altKey : true } ) ;
322+
323+ fireEvent . keyDown ( document , { keyCode : 90 , metaKey : true } ) ;
324+
325+ fireEvent . keyDown ( document , { keyCode : 89 , metaKey : true } ) ;
326+
327+ fireEvent . keyDown ( document , { keyCode : 67 , metaKey : true } ) ;
328+
329+ fireEvent . keyDown ( document , { keyCode : 86 , metaKey : true } ) ;
330+
331+ fireEvent . keyDown ( document , { keyCode : 27 } ) ;
332+
333+ fireEvent . keyDown ( document , { keyCode : 46 } ) ;
334+ } ) ;
335+
336+ it ( 'selected is []' , ( ) => {
337+ fireEvent . keyDown ( document , { keyCode : 39 } ) ;
338+
339+ fireEvent . keyDown ( document , { keyCode : 37 } ) ;
340+
341+ fireEvent . keyDown ( document , { keyCode : 40 } ) ;
342+
343+ fireEvent . keyDown ( document , { keyCode : 38 } ) ;
344+
345+ fireEvent . keyDown ( document , { keyCode : 39 , altKey : true } ) ;
346+
347+ fireEvent . keyDown ( document , { keyCode : 37 , altKey : true } ) ;
348+
349+ fireEvent . keyDown ( document , { keyCode : 40 , altKey : true } ) ;
350+
351+ fireEvent . keyDown ( document , { keyCode : 38 , altKey : true } ) ;
352+
353+ fireEvent . keyDown ( document , { keyCode : 90 , metaKey : true } ) ;
354+
355+ fireEvent . keyDown ( document , { keyCode : 89 , metaKey : true } ) ;
356+
357+ fireEvent . keyDown ( document , { keyCode : 67 , metaKey : true } ) ;
358+
359+ fireEvent . keyDown ( document , { keyCode : 86 , metaKey : true } ) ;
360+
361+ fireEvent . keyDown ( document , { keyCode : 27 } ) ;
362+
363+ fireEvent . keyDown ( document , { keyCode : 46 } ) ;
364+ } ) ;
292365 } ) ;
293- } ) ;
366+ } ) ;
0 commit comments