2
2
/// <reference path="./testdouble-jasmine.d.ts" />
3
3
import { } from 'jasmine' ;
4
4
import * as td from 'testdouble'
5
- import { TestBed , inject , async , ComponentFixture } from '@angular/core/testing' ;
6
- import { DragulaDirective } from '../components/dragula.directive' ;
7
5
import { DragulaService } from '../components/dragula.service' ;
8
6
import { DrakeWithModels } from '../DrakeWithModels' ;
9
7
import { Group } from '../Group' ;
10
- import { Component , ElementRef , EventEmitter } from "@angular/core" ;
11
- import { TestHostComponent } from './test-host.component' ;
12
- import dragula = require( 'dragula' ) ;
13
- import { Subject , Subscription , Observable } from 'rxjs' ;
14
- import { filter , take } from 'rxjs/operators' ;
8
+ import { Observable } from 'rxjs' ;
9
+ import { take } from 'rxjs/operators' ;
15
10
import { MockDrake , MockDrakeFactory } from '../MockDrake' ;
16
11
import { EventTypes } from '../EventTypes' ;
17
12
import { DragulaOptions } from '../DragulaOptions' ;
18
13
19
14
const GROUP = "GROUP" ;
20
15
21
- type SimpleDrake = Partial < DrakeWithModels > ;
22
-
23
16
describe ( 'DragulaService' , ( ) => {
24
17
let service : DragulaService ;
25
18
@@ -204,8 +197,8 @@ describe('DragulaService', () => {
204
197
205
198
let ev = subscribeSync ( service . dropModel ( "DROPMODEL" ) , ( ) => {
206
199
mock . emit ( EventTypes . Drag , li , ul ) ;
207
- ul . removeChild ( li ) ;
208
- ul . appendChild ( li ) ;
200
+ ul . removeChild ( li ) ; // removes a at index 0
201
+ ul . appendChild ( li ) ; // adds a at index 1
209
202
mock . emit ( EventTypes . Drop , li , ul , ul , undefined ) ;
210
203
} ) ;
211
204
@@ -215,6 +208,8 @@ describe('DragulaService', () => {
215
208
expect ( ev . sourceModel . length ) . toBe ( model . length ) ;
216
209
expect ( ev . targetModel ) . not . toBe ( model , 'targetModel not cloned' ) ;
217
210
expect ( ev . targetModel ) . toContain ( 'a' ) ;
211
+ expect ( ev . sourceIndex ) . toBe ( 0 , 'sourceIndex' ) ;
212
+ expect ( ev . targetIndex ) . toBe ( 1 , 'targetIndex' ) ;
218
213
219
214
expect ( ev . targetModel [ 0 ] ) . toBe ( 'b' ) ;
220
215
expect ( ev . targetModel [ 1 ] ) . toBe ( 'a' ) ;
@@ -224,14 +219,14 @@ describe('DragulaService', () => {
224
219
225
220
it ( 'should dropModel correctly in same list (backwards)' , ( ) => {
226
221
const ul = buildList ( 'ul' , [ 'li' , 'li' , 'li' ] ) ;
227
- const li = ul . children [ 2 ] ;
222
+ const li = ul . children [ 2 ] ; // c
228
223
let model = [ 'a' , 'b' , 'c' ] ;
229
224
let mock = _addMockDrake ( "DROPMODEL" , [ ul ] , { } , [ model ] ) ;
230
225
231
226
let ev = subscribeSync ( service . dropModel ( "DROPMODEL" ) , ( ) => {
232
227
mock . emit ( EventTypes . Drag , li , ul ) ;
233
- ul . removeChild ( li ) ;
234
- ul . insertBefore ( li , ul . firstChild ) ;
228
+ ul . removeChild ( li ) ; // remove c from index 2
229
+ ul . insertBefore ( li , ul . firstChild ) ; // add c at index 0
235
230
mock . emit ( EventTypes . Drop , li , ul , ul , undefined ) ;
236
231
} ) ;
237
232
@@ -242,6 +237,8 @@ describe('DragulaService', () => {
242
237
expect ( ev . sourceModel ) . toBe ( ev . targetModel , 'sourceModel !== targetModel' ) ;
243
238
expect ( ev . targetModel ) . not . toBe ( model , 'targetModel not cloned' ) ;
244
239
expect ( ev . targetModel ) . toContain ( 'a' ) ;
240
+ expect ( ev . sourceIndex ) . toBe ( 2 , 'sourceIndex' ) ;
241
+ expect ( ev . targetIndex ) . toBe ( 0 , 'targetIndex' ) ;
245
242
246
243
expect ( ev . targetModel [ 0 ] ) . toBe ( 'c' ) ;
247
244
expect ( ev . targetModel [ 1 ] ) . toBe ( 'a' ) ;
@@ -260,8 +257,8 @@ describe('DragulaService', () => {
260
257
261
258
let ev = subscribeSync ( service . dropModel ( "DROPMODEL" ) , ( ) => {
262
259
mock . emit ( EventTypes . Drag , li , source ) ;
263
- source . removeChild ( li ) ;
264
- target . appendChild ( li ) ;
260
+ source . removeChild ( li ) ; // remove b at index 1
261
+ target . appendChild ( li ) ; // add b at index 2
265
262
mock . emit ( EventTypes . Drop , li , target , source , undefined ) ;
266
263
} ) ;
267
264
@@ -276,6 +273,9 @@ describe('DragulaService', () => {
276
273
expect ( ev . targetModel ) . not . toBe ( targetModel , 'targetModel not cloned' ) ;
277
274
expect ( ev . targetModel ) . toContain ( 'b' , 'targetModel should have b in it' ) ;
278
275
276
+ expect ( ev . sourceIndex ) . toBe ( 1 , 'sourceIndex' ) ;
277
+ expect ( ev . targetIndex ) . toBe ( 2 , 'targetIndex' ) ;
278
+
279
279
expect ( ev . targetModel . length ) . toBe ( 3 ) ;
280
280
expect ( ev . targetModel [ 0 ] ) . toBe ( 'x' ) ;
281
281
expect ( ev . targetModel [ 1 ] ) . toBe ( 'y' ) ;
@@ -303,6 +303,7 @@ describe('DragulaService', () => {
303
303
expect ( ev . sourceModel [ 0 ] ) . toBe ( 'a' ) ;
304
304
// no b
305
305
expect ( ev . sourceModel [ 1 ] ) . toBe ( 'c' ) ;
306
+ expect ( ev . sourceIndex ) . toBe ( 1 , 'sourceIndex' ) ;
306
307
307
308
service . destroy ( "REMOVEMODEL" ) ;
308
309
} ) ;
0 commit comments