71 lines
2.7 KiB
JavaScript
71 lines
2.7 KiB
JavaScript
/* eslint-env detox/detox */
|
|
|
|
describe('Happy paths', () => {
|
|
async function grantAccessToUserWithValidCredentials(
|
|
username,
|
|
{takeScreenshots} = {takeScreenshots: false},
|
|
) {
|
|
await element(by.id('signInButton')).tap()
|
|
if (takeScreenshots) {
|
|
await device.takeScreenshot('1- opened sign-in screen')
|
|
}
|
|
await element(by.id('loginSelectServiceButton')).tap()
|
|
if (takeScreenshots) {
|
|
await device.takeScreenshot('2- opened service selector')
|
|
}
|
|
await element(by.id('localDevServerButton')).tap()
|
|
if (takeScreenshots) {
|
|
await device.takeScreenshot('3- selected local dev server')
|
|
}
|
|
await element(by.id('loginUsernameInput')).typeText(username)
|
|
await element(by.id('loginPasswordInput')).typeText('hunter2')
|
|
if (takeScreenshots) {
|
|
await device.takeScreenshot('4- entered username and password')
|
|
}
|
|
await element(by.id('loginNextButton')).tap()
|
|
}
|
|
|
|
beforeEach(async () => {
|
|
await device.uninstallApp()
|
|
await device.installApp()
|
|
await device.launchApp({permissions: {notifications: 'YES'}})
|
|
})
|
|
|
|
it('As Alice, I can login', async () => {
|
|
await expect(element(by.id('signInButton'))).toBeVisible()
|
|
await grantAccessToUserWithValidCredentials('alice', {
|
|
takeScreenshots: true,
|
|
})
|
|
await device.takeScreenshot('5- opened home screen')
|
|
})
|
|
|
|
it('As Alice, I can login, and post a text', async () => {
|
|
await grantAccessToUserWithValidCredentials('alice')
|
|
await element(by.id('composeFAB')).tap()
|
|
await device.takeScreenshot('1- opened composer')
|
|
await element(by.id('composerTextInput')).typeText(
|
|
'Greetings earthlings, I come in peace... and to run some tests.',
|
|
)
|
|
await device.takeScreenshot('2- entered text')
|
|
await element(by.id('composerPublishButton')).tap()
|
|
await device.takeScreenshot('3- opened general section')
|
|
await expect(element(by.id('composeFAB'))).toBeVisible()
|
|
})
|
|
|
|
it('I can create a new account', async () => {
|
|
await element(by.id('createAccountButton')).tap()
|
|
await device.takeScreenshot('1- opened create account screen')
|
|
await element(by.id('registerSelectServiceButton')).tap()
|
|
await device.takeScreenshot('2- opened service selector')
|
|
await element(by.id('localDevServerButton')).tap()
|
|
await device.takeScreenshot('3- selected local dev server')
|
|
await element(by.id('registerEmailInput')).typeText('example@test.com')
|
|
await element(by.id('registerPasswordInput')).typeText('hunter2')
|
|
await element(by.id('registerHandleInput')).typeText('e2e-test')
|
|
await element(by.id('registerIs13Input')).tap()
|
|
await device.takeScreenshot('4- entered account details')
|
|
await element(by.id('createAccountButton')).tap()
|
|
await expect(element(by.id('welcomeBanner'))).toBeVisible()
|
|
})
|
|
})
|