Skip to content

Commit

Permalink
#2463 - Add unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
yuleicul committed May 11, 2023
1 parent ff4c0a0 commit bb8414f
Show file tree
Hide file tree
Showing 2 changed files with 86 additions and 3 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
/* eslint-disable @typescript-eslint/ban-ts-comment */
import RotateTool from './rotate'
import RotateController from './rotate-controller'
import { Vec2 } from 'ketcher-core'
import Editor from '../Editor'
import RotateTool from './rotate'
import RotateController, { getDifference } from './rotate-controller'

describe('Rotate controller', () => {
/**
Expand Down Expand Up @@ -81,4 +82,83 @@ describe('Rotate controller', () => {

expect(changeCrossColor).toBeCalledTimes(0)
})

/**
* Steps to check:
* Select and move a big structure to edge of canvas,
* then rotate it by the handle
*/
test('center changes with `scale` and `offset`', () => {
const controller = new RotateController({ selection: () => null } as any)
// @ts-ignore
controller.originalCenter = new Vec2(1, 1)
// @ts-ignore
controller.editor.render = {
options: {
scale: 2,
offset: new Vec2(1, 1)
}
}

// @ts-ignore
expect(controller.center.x).toBe(3)
// @ts-ignore
expect(controller.center.y).toBe(3)
})

it('shows half predefined degrees', () => {
let structRotateDegree = 180
let predefinedDegree1 = 90
let predefinedDegree2 = -90
let predefinedDegree3 = 89
let predefinedDegree4 = -89
expect(
getDifference(predefinedDegree1, structRotateDegree)
).toBeLessThanOrEqual(90)
expect(
getDifference(predefinedDegree2, structRotateDegree)
).toBeLessThanOrEqual(90)
expect(
getDifference(predefinedDegree3, structRotateDegree)
).toBeGreaterThan(90)
expect(
getDifference(predefinedDegree4, structRotateDegree)
).toBeGreaterThan(90)

structRotateDegree = 135
predefinedDegree1 = 45
predefinedDegree2 = -135
predefinedDegree3 = 44
predefinedDegree4 = -134
expect(
getDifference(predefinedDegree1, structRotateDegree)
).toBeLessThanOrEqual(90)
expect(
getDifference(predefinedDegree2, structRotateDegree)
).toBeLessThanOrEqual(90)
expect(
getDifference(predefinedDegree3, structRotateDegree)
).toBeGreaterThan(90)
expect(
getDifference(predefinedDegree4, structRotateDegree)
).toBeGreaterThan(90)

structRotateDegree = -135
predefinedDegree1 = -45
predefinedDegree2 = 135
predefinedDegree3 = -44
predefinedDegree4 = 134
expect(
getDifference(predefinedDegree1, structRotateDegree)
).toBeLessThanOrEqual(90)
expect(
getDifference(predefinedDegree2, structRotateDegree)
).toBeLessThanOrEqual(90)
expect(
getDifference(predefinedDegree3, structRotateDegree)
).toBeGreaterThan(90)
expect(
getDifference(predefinedDegree4, structRotateDegree)
).toBeGreaterThan(90)
})
})
Original file line number Diff line number Diff line change
Expand Up @@ -511,7 +511,10 @@ const rotatePoint = (centerPoint: Vec2, startPoint: Vec2, angle: number) => {
return oEnd
}

const getDifference = (currentDegree: number, structRotateDegree: number) => {
export const getDifference = (
currentDegree: number,
structRotateDegree: number
) => {
let abs = 0

// HACK: https://github.com/epam/ketcher/pull/2574#issuecomment-1539509046
Expand Down

0 comments on commit bb8414f

Please sign in to comment.