Skip to content

Commit 7cf1788

Browse files
committed
unit tests for vm DOM methods
1 parent ea34d56 commit 7cf1788

File tree

1 file changed

+70
-15
lines changed

1 file changed

+70
-15
lines changed

test/unit/specs/viewmodel.js

Lines changed: 70 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -213,28 +213,83 @@ describe('UNIT: ViewModel', function () {
213213

214214
})
215215

216-
describe('.$appendTo', function () {
217-
it('should pass', function () {
218-
assert.ok(false)
216+
describe('DOM methods', function () {
217+
218+
var enterCalled,
219+
leaveCalled
220+
221+
var v = new Vue({
222+
attributes: {
223+
'v-transition': 'test'
224+
},
225+
transitions: {
226+
test: {
227+
enter: function (el, change) {
228+
enterCalled = true
229+
change()
230+
},
231+
leave: function (el, change) {
232+
leaveCalled = true
233+
change()
234+
}
235+
}
236+
}
219237
})
220-
})
221238

222-
describe('.$before', function () {
223-
it('should pass', function () {
224-
assert.ok(false)
239+
function reset () {
240+
enterCalled = false
241+
leaveCalled = false
242+
}
243+
244+
it('$appendTo', function () {
245+
reset()
246+
var parent = document.createElement('div')
247+
v.$appendTo(parent)
248+
assert.strictEqual(v.$el.parentNode, parent)
249+
assert.ok(enterCalled)
225250
})
226-
})
227251

228-
describe('.$after', function () {
229-
it('should pass', function () {
230-
assert.ok(false)
252+
it('$before', function () {
253+
reset()
254+
var parent = document.createElement('div'),
255+
ref = document.createElement('div')
256+
parent.appendChild(ref)
257+
v.$before(ref)
258+
assert.strictEqual(v.$el.parentNode, parent)
259+
assert.strictEqual(v.$el.nextSibling, ref)
260+
assert.ok(enterCalled)
231261
})
232-
})
233262

234-
describe('.$remove', function () {
235-
it('should pass', function () {
236-
assert.ok(false)
263+
it('$after', function () {
264+
reset()
265+
var parent = document.createElement('div'),
266+
ref1 = document.createElement('div'),
267+
ref2 = document.createElement('div')
268+
parent.appendChild(ref1)
269+
parent.appendChild(ref2)
270+
v.$after(ref1)
271+
assert.strictEqual(v.$el.parentNode, parent)
272+
assert.strictEqual(v.$el.nextSibling, ref2)
273+
assert.strictEqual(ref1.nextSibling, v.$el)
274+
assert.ok(enterCalled)
275+
reset()
276+
v.$after(ref2)
277+
assert.strictEqual(v.$el.parentNode, parent)
278+
assert.notOk(v.$el.nextSibling)
279+
assert.strictEqual(ref2.nextSibling, v.$el)
280+
assert.ok(enterCalled)
237281
})
282+
283+
it('$remove', function () {
284+
reset()
285+
var parent = document.createElement('div')
286+
v.$appendTo(parent)
287+
v.$remove()
288+
assert.notOk(v.$el.parentNode)
289+
assert.ok(enterCalled)
290+
assert.ok(leaveCalled)
291+
})
292+
238293
})
239294

240295
describe('.$destroy', function () {

0 commit comments

Comments
 (0)