|  | @@ -14,7 +14,7 @@ beforeEach(() => {
 | 
											
												
													
														|  |    renderScene.mockClear();
 |  |    renderScene.mockClear();
 | 
											
												
													
														|  |  });
 |  |  });
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -const { __TEST__: h } = window;
 |  | 
 | 
											
												
													
														|  | 
 |  | +const { h } = window;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  describe("selection element", () => {
 |  |  describe("selection element", () => {
 | 
											
												
													
														|  |    it("create selection element on pointer down", () => {
 |  |    it("create selection element on pointer down", () => {
 | 
											
										
											
												
													
														|  | @@ -27,7 +27,7 @@ describe("selection element", () => {
 | 
											
												
													
														|  |      fireEvent.pointerDown(canvas, { clientX: 60, clientY: 100 });
 |  |      fireEvent.pointerDown(canvas, { clientX: 60, clientY: 100 });
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      expect(renderScene).toHaveBeenCalledTimes(1);
 |  |      expect(renderScene).toHaveBeenCalledTimes(1);
 | 
											
												
													
														|  | -    const selectionElement = h.appState.selectionElement!;
 |  | 
 | 
											
												
													
														|  | 
 |  | +    const selectionElement = h.state.selectionElement!;
 | 
											
												
													
														|  |      expect(selectionElement).not.toBeNull();
 |  |      expect(selectionElement).not.toBeNull();
 | 
											
												
													
														|  |      expect(selectionElement.type).toEqual("selection");
 |  |      expect(selectionElement.type).toEqual("selection");
 | 
											
												
													
														|  |      expect([selectionElement.x, selectionElement.y]).toEqual([60, 100]);
 |  |      expect([selectionElement.x, selectionElement.y]).toEqual([60, 100]);
 | 
											
										
											
												
													
														|  | @@ -48,7 +48,7 @@ describe("selection element", () => {
 | 
											
												
													
														|  |      fireEvent.pointerMove(canvas, { clientX: 150, clientY: 30 });
 |  |      fireEvent.pointerMove(canvas, { clientX: 150, clientY: 30 });
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      expect(renderScene).toHaveBeenCalledTimes(2);
 |  |      expect(renderScene).toHaveBeenCalledTimes(2);
 | 
											
												
													
														|  | -    const selectionElement = h.appState.selectionElement!;
 |  | 
 | 
											
												
													
														|  | 
 |  | +    const selectionElement = h.state.selectionElement!;
 | 
											
												
													
														|  |      expect(selectionElement).not.toBeNull();
 |  |      expect(selectionElement).not.toBeNull();
 | 
											
												
													
														|  |      expect(selectionElement.type).toEqual("selection");
 |  |      expect(selectionElement.type).toEqual("selection");
 | 
											
												
													
														|  |      expect([selectionElement.x, selectionElement.y]).toEqual([60, 30]);
 |  |      expect([selectionElement.x, selectionElement.y]).toEqual([60, 30]);
 | 
											
										
											
												
													
														|  | @@ -70,7 +70,7 @@ describe("selection element", () => {
 | 
											
												
													
														|  |      fireEvent.pointerUp(canvas);
 |  |      fireEvent.pointerUp(canvas);
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      expect(renderScene).toHaveBeenCalledTimes(3);
 |  |      expect(renderScene).toHaveBeenCalledTimes(3);
 | 
											
												
													
														|  | -    expect(h.appState.selectionElement).toBeNull();
 |  | 
 | 
											
												
													
														|  | 
 |  | +    expect(h.state.selectionElement).toBeNull();
 | 
											
												
													
														|  |    });
 |  |    });
 | 
											
												
													
														|  |  });
 |  |  });
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -95,9 +95,9 @@ describe("select single element on the scene", () => {
 | 
											
												
													
														|  |      fireEvent.pointerUp(canvas);
 |  |      fireEvent.pointerUp(canvas);
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      expect(renderScene).toHaveBeenCalledTimes(7);
 |  |      expect(renderScene).toHaveBeenCalledTimes(7);
 | 
											
												
													
														|  | -    expect(h.appState.selectionElement).toBeNull();
 |  | 
 | 
											
												
													
														|  | 
 |  | +    expect(h.state.selectionElement).toBeNull();
 | 
											
												
													
														|  |      expect(h.elements.length).toEqual(1);
 |  |      expect(h.elements.length).toEqual(1);
 | 
											
												
													
														|  | -    expect(h.appState.selectedElementIds[h.elements[0].id]).toBeTruthy();
 |  | 
 | 
											
												
													
														|  | 
 |  | +    expect(h.state.selectedElementIds[h.elements[0].id]).toBeTruthy();
 | 
											
												
													
														|  |    });
 |  |    });
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |    it("diamond", () => {
 |  |    it("diamond", () => {
 | 
											
										
											
												
													
														|  | @@ -120,9 +120,9 @@ describe("select single element on the scene", () => {
 | 
											
												
													
														|  |      fireEvent.pointerUp(canvas);
 |  |      fireEvent.pointerUp(canvas);
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      expect(renderScene).toHaveBeenCalledTimes(7);
 |  |      expect(renderScene).toHaveBeenCalledTimes(7);
 | 
											
												
													
														|  | -    expect(h.appState.selectionElement).toBeNull();
 |  | 
 | 
											
												
													
														|  | 
 |  | +    expect(h.state.selectionElement).toBeNull();
 | 
											
												
													
														|  |      expect(h.elements.length).toEqual(1);
 |  |      expect(h.elements.length).toEqual(1);
 | 
											
												
													
														|  | -    expect(h.appState.selectedElementIds[h.elements[0].id]).toBeTruthy();
 |  | 
 | 
											
												
													
														|  | 
 |  | +    expect(h.state.selectedElementIds[h.elements[0].id]).toBeTruthy();
 | 
											
												
													
														|  |    });
 |  |    });
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |    it("ellipse", () => {
 |  |    it("ellipse", () => {
 | 
											
										
											
												
													
														|  | @@ -145,9 +145,9 @@ describe("select single element on the scene", () => {
 | 
											
												
													
														|  |      fireEvent.pointerUp(canvas);
 |  |      fireEvent.pointerUp(canvas);
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      expect(renderScene).toHaveBeenCalledTimes(7);
 |  |      expect(renderScene).toHaveBeenCalledTimes(7);
 | 
											
												
													
														|  | -    expect(h.appState.selectionElement).toBeNull();
 |  | 
 | 
											
												
													
														|  | 
 |  | +    expect(h.state.selectionElement).toBeNull();
 | 
											
												
													
														|  |      expect(h.elements.length).toEqual(1);
 |  |      expect(h.elements.length).toEqual(1);
 | 
											
												
													
														|  | -    expect(h.appState.selectedElementIds[h.elements[0].id]).toBeTruthy();
 |  | 
 | 
											
												
													
														|  | 
 |  | +    expect(h.state.selectedElementIds[h.elements[0].id]).toBeTruthy();
 | 
											
												
													
														|  |    });
 |  |    });
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |    it("arrow", () => {
 |  |    it("arrow", () => {
 | 
											
										
											
												
													
														|  | @@ -183,9 +183,9 @@ describe("select single element on the scene", () => {
 | 
											
												
													
														|  |      fireEvent.pointerUp(canvas);
 |  |      fireEvent.pointerUp(canvas);
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      expect(renderScene).toHaveBeenCalledTimes(7);
 |  |      expect(renderScene).toHaveBeenCalledTimes(7);
 | 
											
												
													
														|  | -    expect(h.appState.selectionElement).toBeNull();
 |  | 
 | 
											
												
													
														|  | 
 |  | +    expect(h.state.selectionElement).toBeNull();
 | 
											
												
													
														|  |      expect(h.elements.length).toEqual(1);
 |  |      expect(h.elements.length).toEqual(1);
 | 
											
												
													
														|  | -    expect(h.appState.selectedElementIds[h.elements[0].id]).toBeTruthy();
 |  | 
 | 
											
												
													
														|  | 
 |  | +    expect(h.state.selectedElementIds[h.elements[0].id]).toBeTruthy();
 | 
											
												
													
														|  |    });
 |  |    });
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |    it("arrow escape", () => {
 |  |    it("arrow escape", () => {
 | 
											
										
											
												
													
														|  | @@ -221,8 +221,8 @@ describe("select single element on the scene", () => {
 | 
											
												
													
														|  |      fireEvent.pointerUp(canvas);
 |  |      fireEvent.pointerUp(canvas);
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      expect(renderScene).toHaveBeenCalledTimes(7);
 |  |      expect(renderScene).toHaveBeenCalledTimes(7);
 | 
											
												
													
														|  | -    expect(h.appState.selectionElement).toBeNull();
 |  | 
 | 
											
												
													
														|  | 
 |  | +    expect(h.state.selectionElement).toBeNull();
 | 
											
												
													
														|  |      expect(h.elements.length).toEqual(1);
 |  |      expect(h.elements.length).toEqual(1);
 | 
											
												
													
														|  | -    expect(h.appState.selectedElementIds[h.elements[0].id]).toBeTruthy();
 |  | 
 | 
											
												
													
														|  | 
 |  | +    expect(h.state.selectedElementIds[h.elements[0].id]).toBeTruthy();
 | 
											
												
													
														|  |    });
 |  |    });
 | 
											
												
													
														|  |  });
 |  |  });
 |