Files
Aislo/B07_DesignDetail/openwebcad/test/helpers/init-application.ts
T

31 lines
1.2 KiB
TypeScript

import { Point } from '@flatten-js/core';
import { Actor } from 'xstate';
import type { ScreenCanvasDrawController } from '../../src/drawControllers/screenCanvas.drawController';
import { InputController } from '../../src/inputController/input-controller';
import {
setActiveToolActor,
setEntities,
setInputController,
setScreenCanvasDrawController,
} from '../../src/state';
import { Tool } from '../../src/tools';
import { TOOL_STATE_MACHINES } from '../../src/commands/registry';
import { ScreenCanvasDrawController as ScreenCanvasDrawControllerMock } from '../mocks/drawControllers/screenCanvas.drawController';
import { CANVAS_HEIGHT, CANVAS_WIDTH } from './tests.consts';
export function initApplication(): InputController {
const inputController = new InputController();
setInputController(inputController);
setEntities([], true); // Creates the first undo entry
const canvasSize = new Point(CANVAS_WIDTH, CANVAS_HEIGHT);
const lineToolActor = new Actor(TOOL_STATE_MACHINES[Tool.LINE]);
lineToolActor.start();
setActiveToolActor(lineToolActor);
setScreenCanvasDrawController(
new ScreenCanvasDrawControllerMock(null, canvasSize) as unknown as ScreenCanvasDrawController
);
return inputController;
}