Browse Source

Refactor CommandCanvasClear

typed-command-runs
Artur Arseniev 4 months ago
parent
commit
9cf3423b5e
  1. 4
      packages/core/src/commands/registry.ts
  2. 15
      packages/core/src/commands/view/CanvasClear.ts
  3. 16
      packages/core/test/specs/commands/view/CanvasClear.ts

4
packages/core/src/commands/registry.ts

@ -12,6 +12,7 @@ import type { ResizeCommandRegistryRun, ResizeCommandRegistryStop } from './view
import type { CopyComponentCommandRegistryRun } from './view/CopyComponent'; import type { CopyComponentCommandRegistryRun } from './view/CopyComponent';
import type { PasteComponentCommandRegistryRun } from './view/PasteComponent'; import type { PasteComponentCommandRegistryRun } from './view/PasteComponent';
import type { CanvasMoveCommandRegistryRun, CanvasMoveCommandRegistryStop } from './view/CanvasMove'; import type { CanvasMoveCommandRegistryRun, CanvasMoveCommandRegistryStop } from './view/CanvasMove';
import type { CanvasClearCommandRegistryRun } from './view/CanvasClear';
type CommandRegistryHandler = (...args: any[]) => any; type CommandRegistryHandler = (...args: any[]) => any;
type CommandRegistryEntry<TRegistry, TId extends string> = TId extends keyof TRegistry type CommandRegistryEntry<TRegistry, TId extends string> = TId extends keyof TRegistry
@ -26,7 +27,8 @@ export interface CommandRegistryRun
ResizeCommandRegistryRun, ResizeCommandRegistryRun,
CopyComponentCommandRegistryRun, CopyComponentCommandRegistryRun,
PasteComponentCommandRegistryRun, PasteComponentCommandRegistryRun,
CanvasMoveCommandRegistryRun {} CanvasMoveCommandRegistryRun,
CanvasClearCommandRegistryRun {}
export interface CommandRegistryStop export interface CommandRegistryStop
extends FullscreenCommandRegistryStop, extends FullscreenCommandRegistryStop,

15
packages/core/src/commands/view/CanvasClear.ts

@ -1,8 +1,13 @@
import { CommandObject } from './CommandAbstract'; import type { CommandPublicFnFromHandler } from '../registryHelpers';
import CommandAbstract from './CommandAbstract';
export default { export interface CanvasClearCommandRegistryRun {
run(ed) { 'core:canvas-clear': CommandPublicFnFromHandler<CommandCanvasClear['run']>;
}
export default class CommandCanvasClear extends CommandAbstract {
run(ed: any) {
ed.Components.clear(); ed.Components.clear();
ed.Css.clear(); ed.Css.clear();
}, }
} as CommandObject; }

16
packages/core/test/specs/commands/view/CanvasClear.ts

@ -0,0 +1,16 @@
import CanvasClear from '../../../../src/commands/view/CanvasClear';
describe('CanvasClear command', () => {
test('should clear components and css', () => {
const command = new CanvasClear({});
const editor = {
Components: { clear: jest.fn() },
Css: { clear: jest.fn() },
};
command.run(editor);
expect(editor.Components.clear).toHaveBeenCalledTimes(1);
expect(editor.Css.clear).toHaveBeenCalledTimes(1);
});
});
Loading…
Cancel
Save