Skip to content
This repository was archived by the owner on Sep 8, 2020. It is now read-only.

Commit b26aa64

Browse files
committed
test(callbacks): test cancel() when helper is used
1 parent da521c0 commit b26aa64

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

test/sortable.e2e.callbacks.spec.js

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,65 @@ describe('uiSortable', function() {
8585
});
8686
});
8787

88+
it('should cancel sorting of node "Two" and "helper: function" that returns an element is used', function() {
89+
inject(function($compile, $rootScope) {
90+
var element;
91+
element = $compile(''.concat(
92+
'<ul ui-sortable="opts" ng-model="items">',
93+
beforeLiElement,
94+
'<li ng-repeat="item in items" id="s-{{$index}}">{{ item }}</li>',
95+
afterLiElement +
96+
'</ul>'))($rootScope);
97+
$rootScope.$apply(function() {
98+
$rootScope.opts = {
99+
helper: function (e, item) {
100+
return item.clone();
101+
},
102+
update: function(e, ui) {
103+
if (ui.item.sortable.model === 'Two') {
104+
ui.item.sortable.cancel();
105+
}
106+
}
107+
};
108+
$rootScope.items = ['One', 'Two', 'Three'];
109+
});
110+
111+
host.append(element);
112+
113+
var li = element.find('[ng-repeat]:eq(1)');
114+
var dy = (1 + EXTRA_DY_PERCENTAGE) * li.outerHeight();
115+
li.simulate('drag', { dy: dy });
116+
expect($rootScope.items).toEqual(['One', 'Two', 'Three']);
117+
expect($rootScope.items).toEqual(listContent(element));
118+
// try again
119+
li = element.find('[ng-repeat]:eq(1)');
120+
dy = (1 + EXTRA_DY_PERCENTAGE) * li.outerHeight();
121+
li.simulate('drag', { dy: dy });
122+
expect($rootScope.items).toEqual(['One', 'Two', 'Three']);
123+
expect($rootScope.items).toEqual(listContent(element));
124+
// try again
125+
li = element.find('[ng-repeat]:eq(1)');
126+
dy = (1 + EXTRA_DY_PERCENTAGE) * li.outerHeight();
127+
li.simulate('drag', { dy: dy });
128+
expect($rootScope.items).toEqual(['One', 'Two', 'Three']);
129+
expect($rootScope.items).toEqual(listContent(element));
130+
131+
li = element.find('[ng-repeat]:eq(0)');
132+
dy = (2 + EXTRA_DY_PERCENTAGE) * li.outerHeight();
133+
li.simulate('drag', { dy: dy });
134+
expect($rootScope.items).toEqual(['Two', 'Three', 'One']);
135+
expect($rootScope.items).toEqual(listContent(element));
136+
137+
li = element.find('[ng-repeat]:eq(2)');
138+
dy = -(2 + EXTRA_DY_PERCENTAGE) * li.outerHeight();
139+
li.simulate('drag', { dy: dy });
140+
expect($rootScope.items).toEqual(['One', 'Two', 'Three']);
141+
expect($rootScope.items).toEqual(listContent(element));
142+
143+
$(element).remove();
144+
});
145+
});
146+
88147
it('should cancel sorting of node "Two" and "helper: function" that returns a list element is used', function() {
89148
inject(function($compile, $rootScope) {
90149
var element;

0 commit comments

Comments
 (0)