react-native-ui-lib
Version:
UI Toolset & Components Library for React Native
65 lines (54 loc) • 2.37 kB
JavaScript
var _lodash=require('lodash');var _lodash2=_interopRequireDefault(_lodash);
var _TextInput=require('../TextInput');var _TextInput2=_interopRequireDefault(_TextInput);
var _helpers=require('../../../helpers');
var _style=require('../../../style');function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}
describe('TextInput',function(){
describe('shouldFakePlaceholder',function(){
it('should shouldFakePlaceholder',function(){
var uut=new _TextInput2.default({});
expect(uut.shouldFakePlaceholder()).toBe(false);
uut=new _TextInput2.default({floatingPlaceholder:true});
expect(uut.shouldFakePlaceholder()).toBe(true);
uut=new _TextInput2.default({floatingPlaceholder:true,centered:true});
expect(uut.shouldFakePlaceholder()).toBe(false);
});
});
describe('calcMultilineInputHeight',function(){
it('should setState height with undefined',function(){
var uut=new _TextInput2.default({});
jest.spyOn(uut,'setState').mockImplementation(function(){});
uut.calcMultilineInputHeight();
expect(uut.setState.height).toBeUndefined();
});
it('should iOS, when only multiline, setState height with undefined',function(){
var uut=new _TextInput2.default({multiline:true});
jest.spyOn(uut,'setState').mockImplementation(function(){});
uut.calcMultilineInputHeight();
expect(uut.setState.height).toBeUndefined();
});
it('should iOS, when multiline and numberOfLines, setState height with typography * numberOfLines',function(){
var uut=new _TextInput2.default({multiline:true,numberOfLines:2});
jest.spyOn(uut,'setState').mockImplementation(function(){});
jest.spyOn(uut,'getTypography');
uut.getTypography.mockReturnValue(_style.Typography.text70);
var lineHeight=_style.Typography.text70.lineHeight;var
numberOfLines=uut.props.numberOfLines;
var boxHeight=lineHeight*numberOfLines;
uut.calcMultilineInputHeight();
expect(uut.setState).toHaveBeenCalledWith({height:boxHeight});
});
it('should Android setState height with native event height',function(){
mockAndroid();
var event={};
_lodash2.default.set(event,'nativeEvent.contentSize.height',77);
var uut=new _TextInput2.default({});
jest.spyOn(uut,'setState').mockImplementation(function(){});
uut.calcMultilineInputHeight(event);
expect(uut.setState).toHaveBeenCalledWith({height:77});
});
});
});
function mockAndroid(){
_helpers.Constants.isIOS=false;
_helpers.Constants.isAndroid=true;
}