Skip to content

Commit

Permalink
Merge pull request #3 from Root-App/rmc-mock-picker
Browse files Browse the repository at this point in the history
Adds ability to render Picker and Picker.Item (and TabBarIOS and TabBarIOS.Item)
  • Loading branch information
bob-carson authored Dec 29, 2016
2 parents 92437a5 + b426042 commit a2309f9
Show file tree
Hide file tree
Showing 9 changed files with 141 additions and 23 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
"cubic-bezier": "^0.1.2",
"invariant": "^2.2.1",
"keymirror": "^0.1.1",
"lodash": "^4.15.0",
"raf": "^3.2.0",
"react-addons-create-fragment": "^15.4.0",
"react-addons-perf": "^15.4.0",
Expand Down
16 changes: 16 additions & 0 deletions src/components/Picker.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import React from 'react';
import createMockComponent from './createMockComponent';

const Picker = React.createClass({
propTypes: {
children: React.PropTypes.node
},
statics: {
Item: createMockComponent('Picker.Item')
},
render() {
return React.createElement('react-native-mock', null, this.props.children);
}
});

module.exports = Picker;
16 changes: 16 additions & 0 deletions src/components/TabBarIOS.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import React from 'react';
import createMockComponent from './createMockComponent';

const TabBarIOS = React.createClass({
propTypes: {
children: React.PropTypes.node
},
statics: {
Item: createMockComponent('TabBarIOS.Item')
},
render() {
return React.createElement('react-native-mock', null, this.props.children);
}
});

module.exports = TabBarIOS;
7 changes: 2 additions & 5 deletions src/react-native.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ const ReactNative = {
Modal: createMockComponent('Modal'),
Navigator: require('./components/Navigator'),
NavigatorIOS: createMockComponent('NavigatorIOS'),
Picker: createMockComponent('Picker'),
Picker: require('./components/Picker'),
PickerIOS: createMockComponent('PickerIOS'),
ProgressBarAndroid: createMockComponent('ProgressBarAndroid'),
ProgressViewIOS: createMockComponent('ProgressViewIOS'),
Expand All @@ -38,10 +38,7 @@ const ReactNative = {
StatusBar: require('./components/StatusBar'),
SwitchAndroid: createMockComponent('SwitchAndroid'),
SwitchIOS: createMockComponent('SwitchIOS'),
TabBarIOS: {
...createMockComponent('TabBarIOS'),
Item: createMockComponent('TabBarIOS.Item')
},
TabBarIOS: require('./components/TabBarIOS'),
Text: require('./components/Text'),
TextInput: require('./components/TextInput'),
ToastAndroid: createMockComponent('ToastAndroid'),
Expand Down
5 changes: 0 additions & 5 deletions test/basic-test.js

This file was deleted.

12 changes: 12 additions & 0 deletions test/components/Picker.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { expect } from 'chai';
import Picker from '../../src/components/Picker.js';

describe('Picker', () => {
it('is renderable', () => {
expect(Picker).to.be.a('function');
});

it('.Item is renderable', () => {
expect(Picker.Item).to.be.a('function');
});
});
12 changes: 12 additions & 0 deletions test/components/TabBarIOS.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { expect } from 'chai';
import TabBarIOS from '../../src/components/TabBarIOS.js';

describe('TabBarIOS', () => {
it('is renderable', () => {
expect(TabBarIOS).to.be.a('function');
});

it('.Item is renderable', () => {
expect(TabBarIOS.Item).to.be.a('function');
});
});
69 changes: 69 additions & 0 deletions test/react-native-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
import { expect } from 'chai';
import { get } from 'lodash';

describe('react-native.js', () => {
it('returns renderable types when expected', () => {
const MockReactNative = require('../src/react-native');

const renderableComponents = [
'ActivityIndicator',
'ActivityIndicatorIOS',
'ART.LinearGradient',
'ART.RadialGradient',
'ART.Pattern',
'ART.Transform',
'ART.Path',
'ART.Surface',
'ART.Group',
'ART.ClippingRectangle',
'ART.Shape',
'ART.Text',
'Button',
'DatePickerIOS',
'DrawerLayoutAndroid',
'Image',
'ImageEditor',
'ImageStore',
'KeyboardAvoidingView',
'ListView',
'MapView',
'Modal',
'Navigator',
'NavigatorIOS',
'Picker',
'Picker.Item',
'PickerIOS',
'ProgressBarAndroid',
'ProgressViewIOS',
'ScrollView',
'SegmentedControlIOS',
'SliderIOS',
'SnapshotViewIOS',
'Switch',
'PullToRefreshViewAndroid',
'RecyclerViewBackedScrollView',
'RefreshControl',
'StatusBar',
'SwitchAndroid',
'SwitchIOS',
'TabBarIOS',
'TabBarIOS.Item',
'Text',
'TextInput',
'ToastAndroid',
'ToolbarAndroid',
'Touchable',
'TouchableHighlight',
'TouchableNativeFeedback',
'TouchableOpacity',
'TouchableWithoutFeedback',
'View',
'ViewPagerAndroid',
'WebView',
];

renderableComponents.forEach((component) => {
expect(get(MockReactNative, component)).to.be.a('function');
});
});
});
26 changes: 13 additions & 13 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1203,7 +1203,7 @@ [email protected]:
deep-eql "^0.1.3"
type-detect "^1.0.0"

[email protected], chalk@^1.0.0:
[email protected]:
version "1.1.1"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.1.tgz#509afb67066e7499f7eb3535c77445772ae2d019"
dependencies:
Expand All @@ -1213,7 +1213,7 @@ [email protected], chalk@^1.0.0:
strip-ansi "^3.0.0"
supports-color "^2.0.0"

chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
dependencies:
Expand Down Expand Up @@ -1960,11 +1960,11 @@ escape-html@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"

[email protected]:
[email protected], escape-string-regexp@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz#4dbc2fe674e71949caf3fb2695ce7f2dc1d9a8d1"

escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"

Expand Down Expand Up @@ -2749,15 +2749,15 @@ http-signature@~1.1.0:
jsprim "^1.2.2"
sshpk "^1.7.0"

[email protected]:
[email protected], iconv-lite@^0.4.5:
version "0.4.11"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.11.tgz#2ecb42fd294744922209a2e7c404dac8793d8ade"

[email protected]:
version "0.4.13"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2"

iconv-lite@^0.4.5, iconv-lite@~0.4.13:
iconv-lite@~0.4.13:
version "0.4.15"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb"

Expand Down Expand Up @@ -3353,7 +3353,7 @@ lodash@^3.1.0, lodash@^3.2.0, lodash@^3.3.1, lodash@^3.5.0, lodash@^3.6.0:
version "3.10.1"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"

lodash@^4.0.0, lodash@^4.14.0, lodash@^4.16.6, lodash@^4.17.2, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.6.1:
lodash@^4.0.0, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.16.6, lodash@^4.17.2, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.6.1:
version "4.17.2"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.2.tgz#34a3055babe04ce42467b607d700072c7ff6bf42"

Expand Down Expand Up @@ -3529,15 +3529,15 @@ [email protected]:
lru-cache "2"
sigmund "~1.0.0"

"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774"
"minimatch@2 || 3", minimatch@^2.0.3:
version "2.0.10"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7"
dependencies:
brace-expansion "^1.0.0"

minimatch@^2.0.3:
version "2.0.10"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7"
minimatch@^3.0.0, minimatch@^3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774"
dependencies:
brace-expansion "^1.0.0"

Expand Down

0 comments on commit a2309f9

Please sign in to comment.