Skip to content

Commit 2b6ea18

Browse files
committed
feat(helpers): improve navigation helpers
- feat(helpers): createNavigationHelpers by createNavigationCommands - feat(helpers): remove showModalStack function from nav helpers - feat(helpers): create new createStack helper - feat(helpers): only expose command methods
1 parent a4dd6f1 commit 2b6ea18

File tree

7 files changed

+254
-189
lines changed

7 files changed

+254
-189
lines changed

src/helpers/createNavigationHelpers.test.ts renamed to src/helpers/createNavigationCommands.test.ts

Lines changed: 21 additions & 139 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Navigation } from 'react-native-navigation'
2-
import createNavigationHelpers from './createNavigationHelpers'
2+
import createNavigationCommands from './createNavigationCommands'
33

44
jest.mock('react-native-navigation', () => ({
55
Navigation: {
@@ -16,14 +16,14 @@ jest.mock('react-native-navigation', () => ({
1616
popToRoot: jest.fn(),
1717
dismissOverlay: jest.fn(),
1818
getLaunchArgs: jest.fn(),
19-
events: jest.fn(),
19+
setDefaultOptions: jest.fn(),
2020
dismissAllModals: jest.fn(),
2121
},
2222
}))
2323

24-
describe('createNavigationHelpers', () => {
24+
describe('createNavigationCommands', () => {
2525
describe('setRoot', () => {
26-
const { setRoot } = createNavigationHelpers('componentId')
26+
const { setRoot } = createNavigationCommands('componentId')
2727

2828
it('should call Navigation.setRoot using name', async () => {
2929
await setRoot('componentName')
@@ -113,7 +113,7 @@ describe('createNavigationHelpers', () => {
113113
})
114114

115115
describe('setStackRoot', () => {
116-
const { setStackRoot } = createNavigationHelpers('componentId')
116+
const { setStackRoot } = createNavigationCommands('componentId')
117117

118118
it('should call Navigation.setStackRoot using name', async () => {
119119
await setStackRoot('componentName')
@@ -175,7 +175,7 @@ describe('createNavigationHelpers', () => {
175175
})
176176

177177
describe('push', () => {
178-
const { push } = createNavigationHelpers('componentId')
178+
const { push } = createNavigationCommands('componentId')
179179

180180
it('should call Navigation.push using name', async () => {
181181
await push('componentName')
@@ -237,7 +237,7 @@ describe('createNavigationHelpers', () => {
237237
})
238238

239239
describe('showModal', () => {
240-
const { showModal } = createNavigationHelpers('componentId')
240+
const { showModal } = createNavigationCommands('componentId')
241241

242242
it('should call Navigation.showModal using name', async () => {
243243
await showModal('componentName')
@@ -298,126 +298,8 @@ describe('createNavigationHelpers', () => {
298298
})
299299
})
300300

301-
describe('showModalStack', () => {
302-
const { showModalStack } = createNavigationHelpers('componentId')
303-
304-
it('should call Navigation.showModal using name', async () => {
305-
await showModalStack('componentName')
306-
307-
expect(Navigation.showModal).toHaveBeenCalledWith({
308-
stack: {
309-
children: [
310-
{
311-
component: {
312-
name: 'componentName',
313-
},
314-
},
315-
],
316-
},
317-
})
318-
})
319-
320-
it('should call Navigation.showModal using name and passProps', async () => {
321-
await showModalStack('componentName', { prop1: 'value1' })
322-
323-
expect(Navigation.showModal).toHaveBeenCalledWith({
324-
stack: {
325-
children: [
326-
{
327-
component: {
328-
name: 'componentName',
329-
passProps: { prop1: 'value1' },
330-
},
331-
},
332-
],
333-
},
334-
})
335-
})
336-
337-
it('should call Navigation.showModal using name, passProps and options', async () => {
338-
await showModalStack('componentName', { prop1: 'value1' }, { popGesture: true })
339-
340-
expect(Navigation.showModal).toHaveBeenCalledWith({
341-
stack: {
342-
children: [
343-
{
344-
component: {
345-
name: 'componentName',
346-
passProps: { prop1: 'value1' },
347-
options: { popGesture: true },
348-
},
349-
},
350-
],
351-
},
352-
})
353-
})
354-
355-
it('should call Navigation.showModal using name and options', async () => {
356-
await showModalStack('componentName', undefined, { popGesture: true })
357-
358-
expect(Navigation.showModal).toHaveBeenCalledWith({
359-
stack: {
360-
children: [
361-
{
362-
component: {
363-
name: 'componentName',
364-
options: { popGesture: true },
365-
},
366-
},
367-
],
368-
},
369-
})
370-
})
371-
372-
it('should call Navigation.showModal using a LayoutStackChildren', async () => {
373-
await showModalStack({
374-
component: { name: 'componentName' },
375-
externalComponent: { name: 'externalComponentName' },
376-
})
377-
378-
expect(Navigation.showModal).toHaveBeenCalledWith({
379-
stack: {
380-
children: [
381-
{
382-
component: { name: 'componentName' },
383-
externalComponent: { name: 'externalComponentName' },
384-
},
385-
],
386-
},
387-
})
388-
})
389-
390-
it('should call Navigation.showModal when LayoutStackChildren[] provided', async () => {
391-
await showModalStack([
392-
{
393-
component: { name: 'component1' },
394-
externalComponent: { name: 'externalComponentName1' },
395-
},
396-
{
397-
component: { name: 'component2' },
398-
externalComponent: { name: 'externalComponentName2' },
399-
},
400-
])
401-
402-
expect(Navigation.showModal).toHaveBeenCalledWith({
403-
stack: {
404-
children: [
405-
{
406-
component: { name: 'component1' },
407-
externalComponent: { name: 'externalComponentName1' },
408-
},
409-
{
410-
component: { name: 'component2' },
411-
externalComponent: { name: 'externalComponentName2' },
412-
},
413-
],
414-
},
415-
})
416-
})
417-
})
418-
419301
describe('showOverlay', () => {
420-
const { showOverlay } = createNavigationHelpers('componentId')
302+
const { showOverlay } = createNavigationCommands('componentId')
421303

422304
it('should call Navigation.showOverlay using name', async () => {
423305
await showOverlay('componentName')
@@ -479,7 +361,7 @@ describe('createNavigationHelpers', () => {
479361
})
480362

481363
describe('mergeOptions', () => {
482-
const { mergeOptions } = createNavigationHelpers('componentId')
364+
const { mergeOptions } = createNavigationCommands('componentId')
483365

484366
it('should call Navigation.mergeOptions with componentId', () => {
485367
mergeOptions({ popGesture: true })
@@ -489,7 +371,7 @@ describe('createNavigationHelpers', () => {
489371
})
490372

491373
describe('updateProps', () => {
492-
const { updateProps } = createNavigationHelpers('componentId')
374+
const { updateProps } = createNavigationCommands('componentId')
493375

494376
it('should call Navigation.updateProps with componentId', () => {
495377
updateProps({ prop1: 'value1' })
@@ -499,7 +381,7 @@ describe('createNavigationHelpers', () => {
499381
})
500382

501383
describe('dismissModal', () => {
502-
const { dismissModal } = createNavigationHelpers('componentId')
384+
const { dismissModal } = createNavigationCommands('componentId')
503385

504386
it('should call Navigation.dismissModal with componentId', async () => {
505387
await dismissModal()
@@ -521,7 +403,7 @@ describe('createNavigationHelpers', () => {
521403
})
522404

523405
describe('pop', () => {
524-
const { pop } = createNavigationHelpers('componentId')
406+
const { pop } = createNavigationCommands('componentId')
525407

526408
it('should call Navigation.pop with componentId', async () => {
527409
await pop()
@@ -537,7 +419,7 @@ describe('createNavigationHelpers', () => {
537419
})
538420

539421
describe('popTo', () => {
540-
const { popTo } = createNavigationHelpers('componentId')
422+
const { popTo } = createNavigationCommands('componentId')
541423

542424
it('should call Navigation.popTo with componentId', async () => {
543425
await popTo()
@@ -553,7 +435,7 @@ describe('createNavigationHelpers', () => {
553435
})
554436

555437
describe('popToRoot', () => {
556-
const { popToRoot } = createNavigationHelpers('componentId')
438+
const { popToRoot } = createNavigationCommands('componentId')
557439

558440
it('should call Navigation.popToRoot with componentId', async () => {
559441
await popToRoot()
@@ -569,7 +451,7 @@ describe('createNavigationHelpers', () => {
569451
})
570452

571453
describe('dismissOverlay', () => {
572-
const { dismissOverlay } = createNavigationHelpers('componentId')
454+
const { dismissOverlay } = createNavigationCommands('componentId')
573455

574456
it('should call Navigation.dismissOverlay with componentId', async () => {
575457
await dismissOverlay()
@@ -579,17 +461,17 @@ describe('createNavigationHelpers', () => {
579461
})
580462

581463
describe('events', () => {
582-
const { events } = createNavigationHelpers('componentId')
464+
const { setDefaultOptions } = createNavigationCommands('componentId')
583465

584-
it('should return Navigation.events function as is', () => {
585-
events()
466+
it('should return Navigation.setDefaultOptions function as is', () => {
467+
setDefaultOptions({})
586468

587-
expect(Navigation.events).toHaveBeenCalled()
469+
expect(Navigation.setDefaultOptions).toHaveBeenCalledWith({})
588470
})
589471
})
590472

591473
describe('getLaunchArgs', () => {
592-
const { getLaunchArgs } = createNavigationHelpers('componentId')
474+
const { getLaunchArgs } = createNavigationCommands('componentId')
593475

594476
it('should return Navigation.getLaunchArgs function as is', async () => {
595477
await getLaunchArgs()
@@ -599,7 +481,7 @@ describe('createNavigationHelpers', () => {
599481
})
600482

601483
describe('dismissAllModals', () => {
602-
const { dismissAllModals } = createNavigationHelpers('componentId')
484+
const { dismissAllModals } = createNavigationCommands('componentId')
603485

604486
it('should return Navigation.dismissAllModals function as is', async () => {
605487
await dismissAllModals()

0 commit comments

Comments
 (0)