Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
Element
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
CI / CD Analytics
Repository Analytics
Value Stream Analytics
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
林焕东
Element
Commits
706d47b7
Commit
706d47b7
authored
Oct 21, 2016
by
cinwell.li
Committed by
FuryBean
Oct 21, 2016
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Clickoutside: add test & improve vue-popper test (#577)
parent
3317f1f7
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
308 additions
and
16 deletions
+308
-16
build/config.js
build/config.js
+1
-1
packages/popover/src/main.vue
packages/popover/src/main.vue
+1
-1
src/utils/clickoutside.js
src/utils/clickoutside.js
+16
-11
src/utils/resize-event.js
src/utils/resize-event.js
+9
-0
src/utils/vue-popper.js
src/utils/vue-popper.js
+11
-3
test/unit/specs/util.clickoutside.spec.js
test/unit/specs/util.clickoutside.spec.js
+148
-0
test/unit/specs/util.vue-popper.spec.js
test/unit/specs/util.vue-popper.spec.js
+122
-0
No files found.
build/config.js
View file @
706d47b7
...
@@ -8,7 +8,7 @@ Object.keys(Components).forEach(function(key) {
...
@@ -8,7 +8,7 @@ Object.keys(Components).forEach(function(key) {
externals
[
`element-ui/packages/
${
key
}
/style.css`
]
=
`element-ui/lib/
${
key
}
/style.css`
;
externals
[
`element-ui/packages/
${
key
}
/style.css`
]
=
`element-ui/lib/
${
key
}
/style.css`
;
});
});
Object
.
keys
(
dependencies
).
forEach
(
function
(
key
)
{
Object
.
keys
(
dependencies
).
forEach
(
function
(
key
)
{
externals
[
key
]
=
key
;
externals
[
key
]
=
key
;
});
});
...
...
packages/popover/src/main.vue
View file @
706d47b7
...
@@ -49,7 +49,7 @@ export default {
...
@@ -49,7 +49,7 @@ export default {
const
popper
=
this
.
popper
||
this
.
$refs
.
popper
;
const
popper
=
this
.
popper
||
this
.
$refs
.
popper
;
if
(
!
reference
&&
this
.
$slots
.
reference
&&
this
.
$slots
.
reference
[
0
])
{
if
(
!
reference
&&
this
.
$slots
.
reference
&&
this
.
$slots
.
reference
[
0
])
{
reference
=
this
.
$slots
.
reference
[
0
].
elm
;
reference
=
this
.
referenceElm
=
this
.
$slots
.
reference
[
0
].
elm
;
}
}
if
(
this
.
trigger
===
'
click
'
)
{
if
(
this
.
trigger
===
'
click
'
)
{
on
(
reference
,
'
click
'
,
()
=>
{
this
.
showPopper
=
!
this
.
showPopper
;
});
on
(
reference
,
'
click
'
,
()
=>
{
this
.
showPopper
=
!
this
.
showPopper
;
});
...
...
src/utils/clickoutside.js
View file @
706d47b7
import
{
on
}
from
'
wind-dom/src/event
'
;
import
{
on
}
from
'
wind-dom/src/event
'
;
const
nodeList
=
[];
const
nodeList
=
[];
const
ctx
=
'
@@clickoutsideContext
'
;
on
(
document
,
'
click
'
,
e
=>
{
on
(
document
,
'
click
'
,
e
=>
{
nodeList
.
forEach
(
node
=>
node
[
c
lickoutsideContext
].
documentHandler
(
e
));
nodeList
.
forEach
(
node
=>
node
[
c
tx
].
documentHandler
(
e
));
});
});
/**
/**
* v-clickoutside
* v-clickoutside
...
@@ -12,23 +14,24 @@ on(document, 'click', e => {
...
@@ -12,23 +14,24 @@ on(document, 'click', e => {
* <div v-element-clickoutside="handleClose">
* <div v-element-clickoutside="handleClose">
* ```
* ```
*/
*/
const
clickoutsideContext
=
'
@@clickoutsideContext
'
;
export
default
{
export
default
{
bind
(
el
,
binding
,
vnode
)
{
bind
(
el
,
binding
,
vnode
)
{
const
id
=
nodeList
.
push
(
el
)
-
1
;
const
id
=
nodeList
.
push
(
el
)
-
1
;
const
documentHandler
=
function
(
e
)
{
const
documentHandler
=
function
(
e
)
{
if
(
!
vnode
.
context
||
if
(
!
vnode
.
context
||
el
.
contains
(
e
.
target
)
||
el
.
contains
(
e
.
target
)
||
!
vnode
.
context
.
popperElm
||
(
vnode
.
context
.
popperElm
&&
vnode
.
context
.
popperElm
.
contains
(
e
.
target
))
return
;
vnode
.
context
.
popperElm
.
contains
(
e
.
target
)))
return
;
if
(
binding
.
expression
)
{
if
(
binding
.
expression
)
{
vnode
.
context
[
el
[
clickoutsideContext
].
methodName
]();
el
[
ctx
].
methodName
&&
vnode
.
context
[
el
[
ctx
].
methodName
]
&&
vnode
.
context
[
el
[
ctx
].
methodName
]();
}
else
{
}
else
{
el
[
c
lickoutsideContext
].
bindingFn
();
el
[
c
tx
].
bindingFn
&&
el
[
ctx
].
bindingFn
();
}
}
};
};
el
[
c
lickoutsideContext
]
=
{
el
[
c
tx
]
=
{
id
,
id
,
documentHandler
,
documentHandler
,
methodName
:
binding
.
expression
,
methodName
:
binding
.
expression
,
...
@@ -37,15 +40,17 @@ export default {
...
@@ -37,15 +40,17 @@ export default {
},
},
update
(
el
,
binding
)
{
update
(
el
,
binding
)
{
el
[
c
lickoutsideContext
].
methodName
=
binding
.
expression
;
el
[
c
tx
].
methodName
=
binding
.
expression
;
el
[
c
lickoutsideContext
].
bindingFn
=
binding
.
value
;
el
[
c
tx
].
bindingFn
=
binding
.
value
;
},
},
unbind
(
el
)
{
unbind
(
el
)
{
nodeList
.
splice
(
el
[
clickoutsideContext
].
id
,
1
);
nodeList
.
splice
(
el
[
ctx
].
id
,
1
);
delete
el
[
ctx
];
},
},
install
(
Vue
)
{
install
(
Vue
)
{
/* istanbul ignore next */
Vue
.
directive
(
'
clickoutside
'
,
{
Vue
.
directive
(
'
clickoutside
'
,
{
bind
:
this
.
bind
,
bind
:
this
.
bind
,
unbind
:
this
.
unbind
unbind
:
this
.
unbind
...
...
src/utils/resize-event.js
View file @
706d47b7
...
@@ -4,6 +4,7 @@
...
@@ -4,6 +4,7 @@
* version: 0.5.3
* version: 0.5.3
**/
**/
/* istanbul ignore next */
const
requestFrame
=
(
function
()
{
const
requestFrame
=
(
function
()
{
const
raf
=
window
.
requestAnimationFrame
||
window
.
mozRequestAnimationFrame
||
window
.
webkitRequestAnimationFrame
||
const
raf
=
window
.
requestAnimationFrame
||
window
.
mozRequestAnimationFrame
||
window
.
webkitRequestAnimationFrame
||
function
(
fn
)
{
function
(
fn
)
{
...
@@ -14,6 +15,7 @@ const requestFrame = (function() {
...
@@ -14,6 +15,7 @@ const requestFrame = (function() {
};
};
})();
})();
/* istanbul ignore next */
const
cancelFrame
=
(
function
()
{
const
cancelFrame
=
(
function
()
{
const
cancel
=
window
.
cancelAnimationFrame
||
window
.
mozCancelAnimationFrame
||
window
.
webkitCancelAnimationFrame
||
window
.
clearTimeout
;
const
cancel
=
window
.
cancelAnimationFrame
||
window
.
mozCancelAnimationFrame
||
window
.
webkitCancelAnimationFrame
||
window
.
clearTimeout
;
return
function
(
id
)
{
return
function
(
id
)
{
...
@@ -21,6 +23,7 @@ const cancelFrame = (function() {
...
@@ -21,6 +23,7 @@ const cancelFrame = (function() {
};
};
})();
})();
/* istanbul ignore next */
const
resetTrigger
=
function
(
element
)
{
const
resetTrigger
=
function
(
element
)
{
const
trigger
=
element
.
__resizeTrigger__
;
const
trigger
=
element
.
__resizeTrigger__
;
const
expand
=
trigger
.
firstElementChild
;
const
expand
=
trigger
.
firstElementChild
;
...
@@ -35,10 +38,12 @@ const resetTrigger = function(element) {
...
@@ -35,10 +38,12 @@ const resetTrigger = function(element) {
expand
.
scrollTop
=
expand
.
scrollHeight
;
expand
.
scrollTop
=
expand
.
scrollHeight
;
};
};
/* istanbul ignore next */
const
checkTriggers
=
function
(
element
)
{
const
checkTriggers
=
function
(
element
)
{
return
element
.
offsetWidth
!==
element
.
__resizeLast__
.
width
||
element
.
offsetHeight
!==
element
.
__resizeLast__
.
height
;
return
element
.
offsetWidth
!==
element
.
__resizeLast__
.
width
||
element
.
offsetHeight
!==
element
.
__resizeLast__
.
height
;
};
};
/* istanbul ignore next */
const
scrollListener
=
function
(
event
)
{
const
scrollListener
=
function
(
event
)
{
resetTrigger
(
this
);
resetTrigger
(
this
);
if
(
this
.
__resizeRAF__
)
cancelFrame
(
this
.
__resizeRAF__
);
if
(
this
.
__resizeRAF__
)
cancelFrame
(
this
.
__resizeRAF__
);
...
@@ -62,6 +67,7 @@ let animation = false;
...
@@ -62,6 +67,7 @@ let animation = false;
let
keyFramePrefix
=
''
;
let
keyFramePrefix
=
''
;
let
animationStartEvent
=
'
animationstart
'
;
let
animationStartEvent
=
'
animationstart
'
;
/* istanbul ignore next */
if
(
!
attachEvent
)
{
if
(
!
attachEvent
)
{
const
testElement
=
document
.
createElement
(
'
fakeelement
'
);
const
testElement
=
document
.
createElement
(
'
fakeelement
'
);
if
(
testElement
.
style
.
animationName
!==
undefined
)
{
if
(
testElement
.
style
.
animationName
!==
undefined
)
{
...
@@ -83,6 +89,7 @@ if (!attachEvent) {
...
@@ -83,6 +89,7 @@ if (!attachEvent) {
}
}
let
stylesCreated
=
false
;
let
stylesCreated
=
false
;
/* istanbul ignore next */
const
createStyles
=
function
()
{
const
createStyles
=
function
()
{
if
(
!
stylesCreated
)
{
if
(
!
stylesCreated
)
{
const
animationKeyframes
=
`@
${
keyFramePrefix
}
keyframes
${
RESIZE_ANIMATION_NAME
}
{ from { opacity: 0; } to { opacity: 0; } } `
;
const
animationKeyframes
=
`@
${
keyFramePrefix
}
keyframes
${
RESIZE_ANIMATION_NAME
}
{ from { opacity: 0; } to { opacity: 0; } } `
;
...
@@ -110,6 +117,7 @@ const createStyles = function() {
...
@@ -110,6 +117,7 @@ const createStyles = function() {
}
}
};
};
/* istanbul ignore next */
export
const
addResizeListener
=
function
(
element
,
fn
)
{
export
const
addResizeListener
=
function
(
element
,
fn
)
{
if
(
attachEvent
)
{
if
(
attachEvent
)
{
element
.
attachEvent
(
'
onresize
'
,
fn
);
element
.
attachEvent
(
'
onresize
'
,
fn
);
...
@@ -143,6 +151,7 @@ export const addResizeListener = function(element, fn) {
...
@@ -143,6 +151,7 @@ export const addResizeListener = function(element, fn) {
}
}
};
};
/* istanbul ignore next */
export
const
removeResizeListener
=
function
(
element
,
fn
)
{
export
const
removeResizeListener
=
function
(
element
,
fn
)
{
if
(
attachEvent
)
{
if
(
attachEvent
)
{
element
.
detachEvent
(
'
onresize
'
,
fn
);
element
.
detachEvent
(
'
onresize
'
,
fn
);
...
...
src/utils/vue-popper.js
View file @
706d47b7
...
@@ -70,12 +70,17 @@ export default {
...
@@ -70,12 +70,17 @@ export default {
const
options
=
this
.
options
;
const
options
=
this
.
options
;
const
popper
=
this
.
popperElm
=
this
.
popperElm
||
this
.
popper
||
this
.
$refs
.
popper
;
const
popper
=
this
.
popperElm
=
this
.
popperElm
||
this
.
popper
||
this
.
$refs
.
popper
;
const
reference
=
this
.
referenceElm
=
this
.
referenceElm
||
this
.
reference
||
this
.
$refs
.
reference
||
this
.
$slots
.
reference
[
0
].
elm
;
let
reference
=
this
.
referenceElm
=
this
.
referenceElm
||
this
.
reference
||
this
.
$refs
.
reference
;
if
(
!
reference
&&
this
.
$slots
.
reference
&&
this
.
$slots
.
reference
[
0
])
{
reference
=
this
.
referenceElm
=
this
.
$slots
.
reference
[
0
].
elm
;
}
if
(
!
popper
||
!
reference
)
return
;
if
(
!
popper
||
!
reference
)
return
;
if
(
this
.
visibleArrow
)
this
.
appendArrow
(
popper
);
if
(
this
.
visibleArrow
)
this
.
appendArrow
(
popper
);
if
(
this
.
appendToBody
)
document
.
body
.
appendChild
(
this
.
popperElm
);
if
(
this
.
appendToBody
)
document
.
body
.
appendChild
(
this
.
popperElm
);
if
(
this
.
popperJS
&&
this
.
popperJS
.
hasOwnProperty
(
'
destroy
'
)
)
{
if
(
this
.
popperJS
&&
this
.
popperJS
.
destroy
)
{
this
.
popperJS
.
destroy
();
this
.
popperJS
.
destroy
();
}
}
...
@@ -95,6 +100,7 @@ export default {
...
@@ -95,6 +100,7 @@ export default {
},
},
doDestroy
()
{
doDestroy
()
{
/* istanbul ignore if */
if
(
this
.
showPopper
||
!
this
.
popperJS
)
return
;
if
(
this
.
showPopper
||
!
this
.
popperJS
)
return
;
this
.
popperJS
.
destroy
();
this
.
popperJS
.
destroy
();
this
.
popperJS
=
null
;
this
.
popperJS
=
null
;
...
@@ -110,7 +116,9 @@ export default {
...
@@ -110,7 +116,9 @@ export default {
let
placementMap
=
{
top
:
'
bottom
'
,
bottom
:
'
top
'
,
left
:
'
right
'
,
right
:
'
left
'
};
let
placementMap
=
{
top
:
'
bottom
'
,
bottom
:
'
top
'
,
left
:
'
right
'
,
right
:
'
left
'
};
let
placement
=
this
.
popperJS
.
_popper
.
getAttribute
(
'
x-placement
'
).
split
(
'
-
'
)[
0
];
let
placement
=
this
.
popperJS
.
_popper
.
getAttribute
(
'
x-placement
'
).
split
(
'
-
'
)[
0
];
let
origin
=
placementMap
[
placement
];
let
origin
=
placementMap
[
placement
];
this
.
popperJS
.
_popper
.
style
.
transformOrigin
=
[
'
top
'
,
'
bottom
'
].
indexOf
(
placement
)
>
-
1
?
`center
${
origin
}
`
:
`
${
origin
}
center`
;
this
.
popperJS
.
_popper
.
style
.
transformOrigin
=
[
'
top
'
,
'
bottom
'
].
indexOf
(
placement
)
>
-
1
?
`center
${
origin
}
`
:
`
${
origin
}
center`
;
},
},
appendArrow
(
element
)
{
appendArrow
(
element
)
{
...
...
test/unit/specs/util.clickoutside.spec.js
0 → 100644
View file @
706d47b7
import
Clickoutside
from
'
element-ui/src/utils/clickoutside
'
;
const
ctx
=
'
@@clickoutsideContext
'
;
describe
(
'
Utils:Clickoutside
'
,
()
=>
{
it
(
'
create
'
,
()
=>
{
let
count
=
0
;
const
el
=
document
.
createElement
(
'
div
'
);
const
vnode
=
{
context
:
{
handleClick
:
()
=>
++
count
}
};
const
binding
=
{
expression
:
'
handleClick
'
};
Clickoutside
.
bind
(
el
,
binding
,
vnode
);
expect
(
el
[
ctx
]).
to
.
exist
;
});
it
(
'
cotext not exist
'
,
()
=>
{
const
el
=
document
.
createElement
(
'
div
'
);
const
vnode
=
{};
const
binding
=
{
expression
:
'
handleClick
'
};
Clickoutside
.
bind
(
el
,
binding
,
vnode
);
expect
(
el
[
ctx
]).
to
.
exist
;
});
it
(
'
binding expression
'
,
()
=>
{
const
el
=
document
.
createElement
(
'
div
'
);
let
count
=
0
;
const
vnode
=
{
context
:
{
handleClick
:
()
=>
++
count
}
};
const
binding
=
{
expression
:
'
handleClick
'
};
Clickoutside
.
bind
(
el
,
binding
,
vnode
);
document
.
body
.
click
();
expect
(
count
).
to
.
equal
(
1
);
});
it
(
'
click inside
'
,
()
=>
{
const
el
=
document
.
createElement
(
'
div
'
);
const
insideElm
=
document
.
createElement
(
'
div
'
);
let
count
=
0
;
const
vnode
=
{
context
:
{
handleClick
:
()
=>
++
count
}
};
const
binding
=
{
expression
:
'
handleClick
'
};
el
.
appendChild
(
insideElm
);
Clickoutside
.
bind
(
el
,
binding
,
vnode
);
insideElm
.
click
();
expect
(
count
).
to
.
equal
(
0
);
document
.
body
.
click
();
expect
(
count
).
to
.
equal
(
1
);
});
it
(
'
tigger event in popperElm
'
,
()
=>
{
const
el
=
document
.
createElement
(
'
div
'
);
const
insideElm
=
document
.
createElement
(
'
div
'
);
let
count
=
0
;
const
vnode
=
{
context
:
{
handleClick
:
()
=>
++
count
,
popperElm
:
document
.
createElement
(
'
div
'
)
}
};
const
binding
=
{
expression
:
'
handleClick
'
};
vnode
.
context
.
popperElm
.
appendChild
(
insideElm
);
Clickoutside
.
bind
(
el
,
binding
,
vnode
);
insideElm
.
click
();
expect
(
count
).
to
.
equal
(
0
);
document
.
body
.
click
();
expect
(
count
).
to
.
equal
(
1
);
});
it
(
'
binding value
'
,
()
=>
{
const
el
=
document
.
createElement
(
'
div
'
);
let
count
=
0
;
const
vnode
=
{
context
:
{}
};
const
binding
=
{
value
:
()
=>
++
count
};
Clickoutside
.
bind
(
el
,
binding
,
vnode
);
expect
(
count
).
to
.
equal
(
0
);
document
.
body
.
click
();
expect
(
count
).
to
.
equal
(
1
);
});
it
(
'
update
'
,
()
=>
{
let
count
=
0
;
const
el
=
document
.
createElement
(
'
div
'
);
const
vnode
=
{
context
:
{
abc
:
()
=>
++
count
,
ddd
:
()
=>
++
count
}
};
const
binding
=
{
expression
:
'
abc
'
};
const
newBinding
=
{
expression
:
'
ddd
'
};
Clickoutside
.
bind
(
el
,
binding
,
vnode
);
expect
(
el
[
ctx
].
methodName
).
to
.
equal
(
'
abc
'
);
Clickoutside
.
update
(
el
,
newBinding
);
expect
(
el
[
ctx
].
methodName
).
to
.
equal
(
'
ddd
'
);
});
it
(
'
unbind
'
,
()
=>
{
const
el
=
document
.
createElement
(
'
div
'
);
let
count
=
0
;
const
vnode
=
{
context
:
{}
};
const
binding
=
{
value
:
()
=>
++
count
};
Clickoutside
.
bind
(
el
,
binding
,
vnode
);
document
.
body
.
click
();
Clickoutside
.
unbind
(
el
);
document
.
body
.
click
();
expect
(
count
).
to
.
equal
(
1
);
expect
(
el
[
ctx
]).
to
.
not
.
exist
;
});
});
test/unit/specs/util.vue-popper.spec.js
View file @
706d47b7
...
@@ -12,13 +12,71 @@ const Popper = Object.assign({}, VuePopper, {
...
@@ -12,13 +12,71 @@ const Popper = Object.assign({}, VuePopper, {
}
}
});
});
const
CleanPopper
=
Object
.
assign
({},
VuePopper
,
{
render
(
h
)
{
return
h
(
'
div
'
);
}
});
describe
(
'
Utils:VuePopper
'
,
()
=>
{
describe
(
'
Utils:VuePopper
'
,
()
=>
{
it
(
'
set popper not reference
'
,
()
=>
{
const
vm
=
createTest
(
CleanPopper
,
{
popper
:
document
.
createElement
(
'
div
'
)
});
vm
.
createPopper
();
expect
(
vm
.
popperElm
).
to
.
exist
;
expect
(
vm
.
referenceElm
).
to
.
not
.
exist
;
expect
(
vm
.
popperJS
).
to
.
not
.
exist
;
});
it
(
'
set reference not popper
'
,
()
=>
{
const
vm
=
createTest
(
CleanPopper
,
{
reference
:
document
.
createElement
(
'
div
'
)
});
vm
.
createPopper
();
expect
(
vm
.
referenceElm
).
to
.
exist
;
expect
(
vm
.
popperElm
).
to
.
not
.
exist
;
expect
(
vm
.
popperJS
).
to
.
not
.
exist
;
});
it
(
'
set reference by slot
'
,
()
=>
{
const
vm
=
createTest
(
CleanPopper
);
vm
.
$slots
[
'
reference
'
]
=
[{
elm
:
document
.
createElement
(
'
div
'
)
}];
vm
.
createPopper
();
expect
(
vm
.
referenceElm
).
to
.
exist
;
expect
(
vm
.
popperElm
).
to
.
not
.
exist
;
expect
(
vm
.
popperJS
).
to
.
not
.
exist
;
});
it
(
'
createPopper
'
,
()
=>
{
it
(
'
createPopper
'
,
()
=>
{
const
vm
=
createTest
(
Popper
,
{
placement
:
'
top
'
});
const
vm
=
createTest
(
Popper
,
{
placement
:
'
top
'
});
vm
.
createPopper
();
vm
.
createPopper
();
expect
(
vm
.
popperJS
.
_popper
.
getAttribute
(
'
x-placement
'
)).
to
.
equal
(
'
top
'
);
expect
(
vm
.
popperJS
.
_popper
.
getAttribute
(
'
x-placement
'
)).
to
.
equal
(
'
top
'
);
});
});
it
(
'
destroy popper when calling createPopper twice
'
,
()
=>
{
const
vm
=
createTest
(
Popper
);
vm
.
createPopper
();
const
popperJS
=
vm
.
popperJS
;
expect
(
vm
.
popperJS
).
to
.
exist
;
expect
(
vm
.
popperJS
).
to
.
equal
(
popperJS
);
vm
.
createPopper
();
expect
(
vm
.
popperJS
).
to
.
not
.
equal
(
popperJS
);
});
it
(
'
updatePopper
'
,
()
=>
{
const
vm
=
createTest
(
Popper
);
vm
.
updatePopper
();
const
popperJS
=
vm
.
popperJS
;
expect
(
vm
.
popperJS
).
to
.
exist
;
vm
.
updatePopper
();
expect
(
vm
.
popperJS
).
to
.
equal
(
popperJS
);
});
it
(
'
doDestroy
'
,
()
=>
{
it
(
'
doDestroy
'
,
()
=>
{
const
vm
=
createTest
(
Popper
,
{
placement
:
'
top
'
});
const
vm
=
createTest
(
Popper
,
{
placement
:
'
top
'
});
vm
.
createPopper
();
vm
.
createPopper
();
...
@@ -27,6 +85,15 @@ describe('Utils:VuePopper', () => {
...
@@ -27,6 +85,15 @@ describe('Utils:VuePopper', () => {
expect
(
vm
.
popperJS
).
to
.
not
.
exist
;
expect
(
vm
.
popperJS
).
to
.
not
.
exist
;
});
});
it
(
'
destroyPopper
'
,
()
=>
{
const
vm
=
createTest
(
Popper
);
const
vm2
=
createTest
(
Popper
);
vm
.
createPopper
();
expect
(()
=>
vm
.
destroyPopper
()).
to
.
not
.
throw
();
expect
(()
=>
vm2
.
destroyPopper
()).
to
.
not
.
throw
();
});
it
(
'
placement
'
,
()
=>
{
it
(
'
placement
'
,
()
=>
{
const
vm
=
createTest
(
Popper
,
{
placement
:
'
bottom-start
'
});
const
vm
=
createTest
(
Popper
,
{
placement
:
'
bottom-start
'
});
const
vm2
=
createTest
(
Popper
,
{
placement
:
'
bottom-abc
'
});
const
vm2
=
createTest
(
Popper
,
{
placement
:
'
bottom-abc
'
});
...
@@ -46,6 +113,61 @@ describe('Utils:VuePopper', () => {
...
@@ -46,6 +113,61 @@ describe('Utils:VuePopper', () => {
expect
(
vm
.
popperJS
.
_popper
.
querySelector
(
'
div[x-arrow]
'
)).
to
.
exist
;
expect
(
vm
.
popperJS
.
_popper
.
querySelector
(
'
div[x-arrow]
'
)).
to
.
exist
;
});
});
it
(
'
update showPopper
'
,
done
=>
{
const
vm
=
createTest
(
Popper
);
expect
(
vm
.
popperJS
).
to
.
not
.
exist
;
vm
.
showPopper
=
true
;
setTimeout
(
_
=>
{
expect
(
vm
.
popperJS
).
to
.
exist
;
vm
.
showPopper
=
false
;
setTimeout
(
_
=>
{
expect
(
vm
.
popperJS
).
to
.
exist
;
},
50
);
done
();
},
50
);
});
it
(
'
resetTransformOrigin
'
,
()
=>
{
const
vm
=
createTest
(
Popper
,
{
placement
:
'
left
'
});
vm
.
createPopper
();
expect
(
vm
.
popperJS
.
_popper
.
style
.
transformOrigin
).
to
.
include
(
'
right center
'
);
});
it
(
'
appendArrow
'
,
()
=>
{
const
vm
=
createTest
(
Popper
,
{
visibleArrow
:
true
});
expect
(
vm
.
appended
).
to
.
empty
;
vm
.
createPopper
();
expect
(
vm
.
appended
).
to
.
true
;
vm
.
appendArrow
();
expect
(
vm
.
popperJS
.
_popper
.
querySelector
(
'
[x-arrow]
'
)).
to
.
exist
;
expect
(
vm
.
appended
).
to
.
true
;
});
it
(
'
appendArrow: add scoped
'
,
()
=>
{
const
popper
=
document
.
createElement
(
'
div
'
);
popper
.
setAttribute
(
'
_v-110
'
,
true
);
const
vm
=
createTest
(
CleanPopper
,
{
reference
:
document
.
createElement
(
'
div
'
),
visibleArrow
:
true
,
popper
});
expect
(
vm
.
appended
).
to
.
empty
;
vm
.
createPopper
();
expect
(
vm
.
popperJS
.
_popper
.
querySelector
(
'
[x-arrow][_v-110]
'
)).
to
.
exist
;
});
it
(
'
appendToBody set false
'
,
()
=>
{
const
vm
=
createTest
(
Popper
,
{
appendToBody
:
false
});
vm
.
createPopper
();
expect
(
document
.
body
.
contains
(
vm
.
popperElm
)).
to
.
false
;
});
it
(
'
destroy
'
,
()
=>
{
it
(
'
destroy
'
,
()
=>
{
const
vm
=
createTest
(
Popper
,
true
);
const
vm
=
createTest
(
Popper
,
true
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment