Skip to content

Latest commit

 

History

History
108 lines (76 loc) · 2.54 KB

File metadata and controls

108 lines (76 loc) · 2.54 KB

Sample Codes

https://lunit-io.github.io/opt-tool-frontend

Stories

Tests

__tests__/useOPTControl.test.ts

import { act, renderHook } from '@testing-library/react-hooks';
import { useOPTControl } from '../useOPTControl';

describe('useOPTControl()', () => {
  test('basic', () => {
    const { result } = renderHook(() => useOPTControl());

    expect(result.current.control).toBe('pan');
    expect(result.current.invert).toBeFalsy();
    expect(result.current.flip).toBeFalsy();

    act(() => {
      result.current.updateControl('pen');
      result.current.updateFlip(true);
    });

    expect(result.current.control).toBe('pen');
    expect(result.current.invert).toBeFalsy();
    expect(result.current.flip).toBeTruthy();

    act(() => {
      result.current.updateControl('adjust');
      result.current.updateInvert(true);
    });

    expect(result.current.control).toBe('adjust');
    expect(result.current.invert).toBeTruthy();
    expect(result.current.flip).toBeTruthy();

    act(() => {
      result.current.resetControl();
    });

    expect(result.current.control).toBe('pan');
    expect(result.current.invert).toBeFalsy();
    expect(result.current.flip).toBeFalsy();
  });
});

__tests__/useOPTControl.test.ts

import { act, renderHook } from '@testing-library/react-hooks';
import { useOPTControl } from '../useOPTControl';

describe('useOPTControl()', () => {
  test('basic', () => {
    const { result } = renderHook(() => useOPTControl());

    expect(result.current.control).toBe('pan');
    expect(result.current.invert).toBeFalsy();
    expect(result.current.flip).toBeFalsy();

    act(() => {
      result.current.updateControl('pen');
      result.current.updateFlip(true);
    });

    expect(result.current.control).toBe('pen');
    expect(result.current.invert).toBeFalsy();
    expect(result.current.flip).toBeTruthy();

    act(() => {
      result.current.updateControl('adjust');
      result.current.updateInvert(true);
    });

    expect(result.current.control).toBe('adjust');
    expect(result.current.invert).toBeTruthy();
    expect(result.current.flip).toBeTruthy();

    act(() => {
      result.current.resetControl();
    });

    expect(result.current.control).toBe('pan');
    expect(result.current.invert).toBeFalsy();
    expect(result.current.flip).toBeFalsy();
  });
});