Skip to content

Commit

Permalink
improve looseequal test case (#4542)
Browse files Browse the repository at this point in the history
  • Loading branch information
defcc authored and yyx990803 committed Dec 22, 2016
1 parent 3619318 commit bc140de
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 1 deletion.
26 changes: 25 additions & 1 deletion test/unit/features/directives/model-checkbox.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -169,27 +169,51 @@ describe('Directive v-model checkbox', () => {
'<input type="checkbox" value="" v-model="test">' +
'<input type="checkbox" value="0" v-model="test">' +
'<input type="checkbox" value="1" v-model="test">' +
'<input type="checkbox" value="false" v-model="test">' +
'<input type="checkbox" value="true" v-model="test">' +
'</div>'
}).$mount()
var checkboxInput = vm.$el.children
expect(checkboxInput[0].checked).toBe(false)
expect(checkboxInput[1].checked).toBe(true)
expect(checkboxInput[2].checked).toBe(false)
expect(checkboxInput[3].checked).toBe(false)
expect(checkboxInput[4].checked).toBe(false)
vm.test = [1]
waitForUpdate(() => {
expect(checkboxInput[0].checked).toBe(false)
expect(checkboxInput[1].checked).toBe(false)
expect(checkboxInput[2].checked).toBe(true)
expect(checkboxInput[3].checked).toBe(false)
expect(checkboxInput[4].checked).toBe(false)
vm.test = ['']
}).then(() => {
expect(checkboxInput[0].checked).toBe(true)
expect(checkboxInput[1].checked).toBe(false)
expect(checkboxInput[2].checked).toBe(false)
vm.test = ['', 0, 1]
expect(checkboxInput[3].checked).toBe(false)
expect(checkboxInput[4].checked).toBe(false)
vm.test = [false]
}).then(() => {
expect(checkboxInput[0].checked).toBe(false)
expect(checkboxInput[1].checked).toBe(false)
expect(checkboxInput[2].checked).toBe(false)
expect(checkboxInput[3].checked).toBe(true)
expect(checkboxInput[4].checked).toBe(false)
vm.test = [true]
}).then(() => {
expect(checkboxInput[0].checked).toBe(false)
expect(checkboxInput[1].checked).toBe(false)
expect(checkboxInput[2].checked).toBe(false)
expect(checkboxInput[3].checked).toBe(false)
expect(checkboxInput[4].checked).toBe(true)
vm.test = ['', 0, 1, false, true]
}).then(() => {
expect(checkboxInput[0].checked).toBe(true)
expect(checkboxInput[1].checked).toBe(true)
expect(checkboxInput[2].checked).toBe(true)
expect(checkboxInput[3].checked).toBe(true)
expect(checkboxInput[4].checked).toBe(true)
}).then(done)
})

Expand Down
22 changes: 22 additions & 0 deletions test/unit/features/directives/model-radio.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -156,22 +156,44 @@ describe('Directive v-model radio', () => {
'<input type="radio" value="" v-model="test" name="test">' +
'<input type="radio" value="0" v-model="test" name="test">' +
'<input type="radio" value="1" v-model="test" name="test">' +
'<input type="radio" value="false" v-model="test" name="test">' +
'<input type="radio" value="true" v-model="test" name="test">' +
'</div>'
}).$mount()
var radioboxInput = vm.$el.children
expect(radioboxInput[0].checked).toBe(false)
expect(radioboxInput[1].checked).toBe(false)
expect(radioboxInput[2].checked).toBe(true)
expect(radioboxInput[3].checked).toBe(false)
expect(radioboxInput[4].checked).toBe(false)
vm.test = 0
waitForUpdate(() => {
expect(radioboxInput[0].checked).toBe(false)
expect(radioboxInput[1].checked).toBe(true)
expect(radioboxInput[2].checked).toBe(false)
expect(radioboxInput[3].checked).toBe(false)
expect(radioboxInput[4].checked).toBe(false)
vm.test = ''
}).then(() => {
expect(radioboxInput[0].checked).toBe(true)
expect(radioboxInput[1].checked).toBe(false)
expect(radioboxInput[2].checked).toBe(false)
expect(radioboxInput[3].checked).toBe(false)
expect(radioboxInput[4].checked).toBe(false)
vm.test = false
}).then(() => {
expect(radioboxInput[0].checked).toBe(false)
expect(radioboxInput[1].checked).toBe(false)
expect(radioboxInput[2].checked).toBe(false)
expect(radioboxInput[3].checked).toBe(true)
expect(radioboxInput[4].checked).toBe(false)
vm.test = true
}).then(() => {
expect(radioboxInput[0].checked).toBe(false)
expect(radioboxInput[1].checked).toBe(false)
expect(radioboxInput[2].checked).toBe(false)
expect(radioboxInput[3].checked).toBe(false)
expect(radioboxInput[4].checked).toBe(true)
}).then(done)
})

Expand Down
22 changes: 22 additions & 0 deletions test/unit/features/directives/model-select.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -329,22 +329,44 @@ describe('Directive v-model select', () => {
'<option value="">a</option>' +
'<option value="0">b</option>' +
'<option value="1">c</option>' +
'<option value="false">c</option>' +
'<option value="true">c</option>' +
'</select>'
}).$mount()
var opts = vm.$el.options
expect(opts[0].selected).toBe(false)
expect(opts[1].selected).toBe(true)
expect(opts[2].selected).toBe(false)
expect(opts[3].selected).toBe(false)
expect(opts[4].selected).toBe(false)
vm.test = 1
waitForUpdate(() => {
expect(opts[0].selected).toBe(false)
expect(opts[1].selected).toBe(false)
expect(opts[2].selected).toBe(true)
expect(opts[3].selected).toBe(false)
expect(opts[4].selected).toBe(false)
vm.test = ''
}).then(() => {
expect(opts[0].selected).toBe(true)
expect(opts[1].selected).toBe(false)
expect(opts[2].selected).toBe(false)
expect(opts[3].selected).toBe(false)
expect(opts[4].selected).toBe(false)
vm.test = false
}).then(() => {
expect(opts[0].selected).toBe(false)
expect(opts[1].selected).toBe(false)
expect(opts[2].selected).toBe(false)
expect(opts[3].selected).toBe(true)
expect(opts[4].selected).toBe(false)
vm.test = true
}).then(() => {
expect(opts[0].selected).toBe(false)
expect(opts[1].selected).toBe(false)
expect(opts[2].selected).toBe(false)
expect(opts[3].selected).toBe(false)
expect(opts[4].selected).toBe(true)
}).then(done)
})

Expand Down

0 comments on commit bc140de

Please sign in to comment.