Skip to content

Commit 25a488d

Browse files
committed
test(store): add sortgrid test
1 parent bf0b124 commit 25a488d

File tree

2 files changed

+48
-2
lines changed

2 files changed

+48
-2
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import {NgsgSortService} from './ngsg-sort.service';
2+
import createSpyObj = jasmine.createSpyObj;
3+
import {NgsgClassService} from './ngsg-class.service';
4+
import {NgsgStoreService} from './ngsg-store.service';
5+
import {NgsgElementsHelper} from './ngsg-elements.helper';
6+
7+
describe('NgsgSortService', () => {
8+
9+
let sut: NgsgSortService;
10+
const selectionService = createSpyObj<NgsgClassService>('classService',
11+
['addPlaceHolderClass', 'removePlaceHolderClass', 'addDroppedClass', 'removeSelectedClass']);
12+
const ngsgStore = createSpyObj<NgsgStoreService>('ngsgStore', ['getFirstSelectItem', 'getSelectedItems']);
13+
14+
beforeEach(() => {
15+
sut = new NgsgSortService(selectionService, ngsgStore);
16+
});
17+
18+
const createElement = (value, nextSibling) => ({
19+
value,
20+
nextSibling,
21+
parentNode: {
22+
insertBefore: () => {
23+
}
24+
}
25+
}) as any;
26+
27+
it('should insert the first element in the middle if we drag it to the right', () => {
28+
const group = 'test-group';
29+
30+
const lastElement = createElement(3, null);
31+
const middleElement = createElement(2, lastElement);
32+
const firstElement = createElement(1, middleElement);
33+
34+
const dragElement = {originalIndex: 0, node: firstElement} as any;
35+
const dropElement = middleElement as any;
36+
37+
ngsgStore.getFirstSelectItem.and.returnValue({originalIndex: 0});
38+
ngsgStore.getSelectedItems.and.returnValue([dragElement]);
39+
const insertBeforeSpy = spyOn(dropElement.parentNode, 'insertBefore');
40+
NgsgElementsHelper.findIndex = () => 1;
41+
42+
sut.initSort(group);
43+
sut.sort(dropElement);
44+
45+
expect(insertBeforeSpy).toHaveBeenCalledWith(dragElement.node, lastElement);
46+
});
47+
48+
});

projects/ng-sortgrid/src/lib/ngsg-sort.service.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { Injectable } from '@angular/core';
22
import { timer } from 'rxjs';
33

44
import { NgsgStoreService } from './ngsg-store.service';
5-
import { NgsgSelectionService } from './ngsg-selection.service';
65
import { NgsgClassService } from './ngsg-class.service';
76
import { NgsgDragelement } from './ngsg-dragelement.model';
87
import { NgsgElementsHelper } from './ngsg-elements.helper';
@@ -15,7 +14,6 @@ export class NgsgSortService {
1514
private dragElements: NgsgDragelement[];
1615

1716
constructor(
18-
private selectionService: NgsgSelectionService,
1917
private classService: NgsgClassService,
2018
private ngsgStore: NgsgStoreService
2119
) {}

0 commit comments

Comments
 (0)