const Utils = require('./Utils'); const elementByLabel = Utils.elementByLabel; describe('screen stack', () => { beforeEach(async () => { await device.relaunchApp(); }); it('push and pop screen', async () => { await elementByLabel('Push').tap(); await expect(elementByLabel('Pushed Screen')).toBeVisible(); await elementByLabel('Pop').tap(); await expect(elementByLabel('React Native Navigation!')).toBeVisible(); }); it('pop screen deep in the stack', async () => { await elementByLabel('Push').tap(); await expect(elementByLabel('Stack Position: 1')).toBeVisible(); await elementByLabel('Push').tap(); await expect(elementByLabel('Stack Position: 2')).toBeVisible(); await elementByLabel('Pop Previous').tap(); await expect(elementByLabel('Stack Position: 2')).toBeVisible(); await elementByLabel('Pop').tap(); await expect(elementByLabel('React Native Navigation!')).toBeVisible(); }); it('pop to specific id', async () => { await elementByLabel('Push').tap(); await elementByLabel('Push').tap(); await elementByLabel('Push').tap(); await expect(elementByLabel('Stack Position: 3')).toBeVisible(); await elementByLabel('Pop To Stack Position 1').tap(); await expect(elementByLabel('Stack Position: 1')).toBeVisible(); }); it('pop to root', async () => { await elementByLabel('Push').tap(); await elementByLabel('Push').tap(); await elementByLabel('Push').tap(); await elementByLabel('Pop To Root').tap(); await expect(elementByLabel('React Native Navigation!')).toBeVisible(); }); });