ElemeFE / ElemeFE/mint-ui

[Bug Report] Test environment error: Cannot read property 'toLowerCase' of undefined

Open
#1,291 6 comments 0 reactions 0 assignees View on GitHub
Dominant language
Vue
Stars
16.4k
Forks
3.5k
PR merge metrics
No merged PRs in 30d

Description

### Mint UI version
2.2.13

### OS/Browsers version
Jest

### Vue version
2.5.10

### Reproduction Link
[http://codepen.com/testevironment/don't/use/it](http://codepen.com/testevironment/don't/use/it)

### Steps to reproduce
1. Install and config Jest
2. Import components from mint-ui in file need test
3. Import the file in test file

### What is Expected?
Test without error

### What is actually happening?
Get error: Cannot read property 'toLowerCase' of undefined.

I think the error was product by follow code. In test environment, user agent info, such as `document.documentElement.style` are empty, so `engine` would be undefined. And then, undefined `engine` lead to undefined `vendorPrefix`, read `toLowerCase` from it lead to error.
```
var docStyle = document.documentElement.style;
var engine;
var translate3d = false;

if (window.opera && Object.prototype.toString.call(opera) === '[object Opera]') {
engine = 'presto';
} else if ('MozAppearance' in docStyle) {
engine = 'gecko';
} else if ('WebkitAppearance' in docStyle) {
engine = 'webkit';
} else if (typeof navigator.cpuClass === 'string') {
engine = 'trident';
}

var cssPrefix = {trident: '-ms-', gecko: '-moz-', webkit: '-webkit-', presto: '-o-'}[engine];

var vendorPrefix = {trident: 'ms', gecko: 'Moz', webkit: 'Webkit', presto: 'O'}[engine];

var helperElem = document.createElement('div');
var perspectiveProperty = vendorPrefix 'Perspective';
var transformProperty = vendorPrefix 'Transform';
var transformStyleName = cssPrefix 'transform';
var transitionProperty = vendorPrefix 'Transition';
var transitionStyleName = cssPrefix 'transition';
var transitionEndProperty = vendorPrefix.toLowerCase() 'TransitionEnd';
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.