Browse Source

Test removeSpots

pull/5358/head
Artur Arseniev 2 years ago
parent
commit
d0c33f3e1c
  1. 6
      src/canvas/index.ts
  2. 38
      test/specs/canvas/index.ts

6
src/canvas/index.ts

@ -42,7 +42,7 @@
* @module Canvas
*/
import { isUndefined } from 'underscore';
import { isArray, isUndefined } from 'underscore';
import { Module } from '../abstract';
import { AddOptions, Coordinates } from '../common';
import Component from '../dom_components/model/Component';
@ -758,8 +758,8 @@ export default class CanvasModule extends Module<CanvasConfig> {
return this.spots.where(spotProps.id ? { id: spotProps.id } : spotProps) as CanvasSpot<T>[];
}
removeSpots<T extends CanvasSpotProps>(spotProps: Partial<T> = {}) {
const spots = this.getSpots(spotProps);
removeSpots<T extends CanvasSpotProps>(spotProps: Partial<T> | CanvasSpot[] = {}) {
const spots = isArray(spotProps) ? spotProps : this.getSpots(spotProps);
const removed = this.spots.remove(spots);
return removed as unknown as CanvasSpot<T>[];
}

38
test/specs/canvas/index.ts

@ -80,6 +80,44 @@ describe('Canvas', () => {
});
});
describe('removeSpots()', () => {
test('Remove all spots', () => {
canvas.addSpot({ type: Select });
canvas.addSpot({ type: Target });
canvas.removeSpots();
const spots = canvas.getSpots();
expect(spots.length).toBe(0);
});
test('Remove spots by props', () => {
canvas.addSpot({ type: Select });
canvas.addSpot({ type: Target });
canvas.addSpot({ id: 'target2', type: Target });
canvas.removeSpots({ type: Target });
const spots = canvas.getSpots();
expect(spots.length).toBe(1);
});
test('Remove spots by id', () => {
canvas.addSpot({ type: Select });
canvas.addSpot({ type: Target });
canvas.addSpot({ id: 'target2', type: Target });
canvas.removeSpots({ id: 'target2' });
const spots = canvas.getSpots();
expect(spots.length).toBe(2);
});
test('Remove spots by array of spots', () => {
const spotSelect = canvas.addSpot({ type: Select });
const spotTarget1 = canvas.addSpot({ type: Target });
const spotTarget2 = canvas.addSpot({ id: 'target2', type: Target });
canvas.removeSpots([spotTarget1, spotTarget2]);
const spots = canvas.getSpots();
expect(spots.length).toBe(1);
expect(spots[0]).toBe(spotSelect);
});
});
describe('Spot Events', () => {
test('addSpot() triggers proper events', done => {
const eventAdd = jest.fn();

Loading…
Cancel
Save