From bc140de48b986b5079bb69bef276420749b93119 Mon Sep 17 00:00:00 2001 From: chengchao Date: Thu, 22 Dec 2016 11:35:52 +0800 Subject: [PATCH] improve looseequal test case (#4542) --- .../directives/model-checkbox.spec.js | 26 ++++++++++++++++++- .../features/directives/model-radio.spec.js | 22 ++++++++++++++++ .../features/directives/model-select.spec.js | 22 ++++++++++++++++ 3 files changed, 69 insertions(+), 1 deletion(-) diff --git a/test/unit/features/directives/model-checkbox.spec.js b/test/unit/features/directives/model-checkbox.spec.js index 9040628dd00..9f061d40052 100644 --- a/test/unit/features/directives/model-checkbox.spec.js +++ b/test/unit/features/directives/model-checkbox.spec.js @@ -169,27 +169,51 @@ describe('Directive v-model checkbox', () => { '' + '' + '' + + '' + + '' + '' }).$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) }) diff --git a/test/unit/features/directives/model-radio.spec.js b/test/unit/features/directives/model-radio.spec.js index 26ddb2db19c..25e8752f623 100644 --- a/test/unit/features/directives/model-radio.spec.js +++ b/test/unit/features/directives/model-radio.spec.js @@ -156,22 +156,44 @@ describe('Directive v-model radio', () => { '' + '' + '' + + '' + + '' + '' }).$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) }) diff --git a/test/unit/features/directives/model-select.spec.js b/test/unit/features/directives/model-select.spec.js index 23a6361b15c..becb1f423d0 100644 --- a/test/unit/features/directives/model-select.spec.js +++ b/test/unit/features/directives/model-select.spec.js @@ -329,22 +329,44 @@ describe('Directive v-model 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) })