Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade to latest versions #102

Merged
merged 29 commits into from
May 17, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
e988850
feat: initial upgrade for Android
wswebcreation May 3, 2021
8e06447
feat: add deeplinking for Android
wswebcreation May 4, 2021
25ffe4c
feat: add GH-actions for Android
wswebcreation May 4, 2021
30ea7de
feat: add deepling support for iOS
wswebcreation May 4, 2021
75ba9b1
feat: add biometric support for iOS and Android
wswebcreation May 4, 2021
691b2ad
fix: remove tele2 picker and add new one
wswebcreation May 4, 2021
8276a4d
fix: add limit with retries for biometric support
wswebcreation May 4, 2021
8f7fffe
fix: rename app to all packagename and structure
wswebcreation May 5, 2021
770581e
feat: add vertical swipe action
wswebcreation May 5, 2021
915feec
feat: add initial support for iOS
wswebcreation May 5, 2021
d9d32b1
feat: add iOS icons and launch screen
wswebcreation May 5, 2021
69864d0
fix: fix tab bar height for iOS devices with home bar
wswebcreation May 5, 2021
994c91b
chore: fix linting errors
wswebcreation May 5, 2021
53ef07c
chore: revert back docs removal
wswebcreation May 7, 2021
d1aa2ea
feat: new replacement of picker with a better one
wswebcreation May 7, 2021
1400ec5
fix: add proper testIds
wswebcreation May 7, 2021
d9b1247
chore: add release scheme
wswebcreation May 7, 2021
8444d0a
feat: add initial set up for drag puzzle
wswebcreation May 8, 2021
a512c8f
feat: add drag reset button
wswebcreation May 9, 2021
ace2ec5
feat: add success screen
wswebcreation May 9, 2021
fa193a9
chore: update readme
wswebcreation May 9, 2021
60dce02
chore: add contributing docs
wswebcreation May 9, 2021
3fea393
chore: add versioning steps
wswebcreation May 10, 2021
81038fd
Merge branch 'main' into feat/upgrade-app
wswebcreation May 10, 2021
28e3082
chore: fix versioning
wswebcreation May 10, 2021
6241ae1
Merge remote-tracking branch 'origin/feat/upgrade-app' into feat/upgr…
wswebcreation May 10, 2021
81cb4cc
fix: multiple fixes to support testing
wswebcreation May 11, 2021
f206f1d
fix: multiple fixes to support testing
wswebcreation May 16, 2021
d1d3de3
fix: make puzzle pieces smaller for smaller screens
wswebcreation May 17, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
9 changes: 9 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
root = true

[*]
indent_style = space
indent_size = 2

# Windows files
[*.bat]
end_of_line = crlf
99 changes: 0 additions & 99 deletions .flowconfig

This file was deleted.

4 changes: 3 additions & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
*.pbxproj -text
# Windows files should use crlf line endings
# https://help.github.com/articles/dealing-with-line-endings/
*.bat text eol=crlf
35 changes: 35 additions & 0 deletions .github/workflows/android.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Android WebdriverIO Native Demo App

on:
push:
branches:
- main
paths-ignore:
- 'ios/**'
- '**.md'
- '**/ios.yml'
defaults:
run:
working-directory: android
jobs:
ReleaseBuild:
runs-on: ubuntu-20.04
strategy:
matrix:
node-version: [14.x]
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: yarn install
- name: Build Android Release
run: yarn android.release
- name: Archive Apps
uses: actions/upload-artifact@v2
with:
name: Android WebdriverIO Native Demo App Release
path: '**/app/build/outputs/apk/release/**/*.apk'
36 changes: 36 additions & 0 deletions .github/workflows/ios.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: iOS WebdriverIO Native Demo App

on:
push:
branches:
- main
paths-ignore:
- 'android/**'
- '**.md'
- '**/android.yml'
defaults:
run:
working-directory: ios
jobs:
SimulatorRelease:
runs-on: macos-latest
strategy:
matrix:
node-version: [14.x]
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: |
yarn install
- name: Build iOS Sim Build
run: yarn ios.release.sim.build
- name: Archive App
uses: actions/upload-artifact@v2
with:
name: iOS SauceLabs Sample App Sim Build
path: '**/Build/Products/Release-iphonesimulator/wdioNativeDemoApp.app'
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ DerivedData
*.hmap
*.ipa
*.xcuserstate
project.xcworkspace

# Android/IntelliJ
#
Expand Down Expand Up @@ -56,3 +55,6 @@ buck-out/

# CocoaPods
/ios/Pods/

# Extra
package-lock.json
1 change: 1 addition & 0 deletions .prettierrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@ module.exports = {
jsxBracketSameLine: true,
singleQuote: true,
trailingComma: 'all',
arrowParens: 'avoid',
};
58 changes: 25 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,50 +1,42 @@
# WebdriverIO Demo App for iOS and Android

This app is build with React Native and will be used for test automation purposes for the [appium-boilerplate](https://github.com/webdriverio/appium-boilerplate).

> **NOTE<br>**
> Make sure to use yarn instead of NPM. NPM gives a lot of problems currently with React Native[^1]. How to setup yarn can be found [here](https://yarnpkg.com/lang/en/docs/install/#mac-stable)

[^1] NPM gives a lot of problems currently with React Native, only from what I've seen with the migration.

- React Natve 0.60.x now uses Pods for linking dependencies, from what I've seen with NPM is that is messes up this linking 9 out of 10 times
- Installing other dependencies are mostly recommended to install with yarn (not only for React Native but also with ReactJS)
- It costed me around a day to get everything working with NPM, but with yarn I didn't had any problems migrating to RN 0.60
- yarn is faster
- and I can go on

This is also the reason that the `package-lock.json` has been removed.


![webdriverio-demo-app-ios.ios](./docs/assets/webdriver.io.demo.gif)
This app is build with React Native and will be used for test automation purposes for the
[appium-boilerplate](https://github.com/webdriverio/appium-boilerplate).

## Downloads
Different releases of the iOS and Android app can be downloaded [here](https://github.com/webdriverio/native-demo-app/releases)

> **NOTE:**
> The Android app can be installed on Android emulators and physical devices.
> The iOS app can also be installed iOS simulators (take the `\*.app.zip` file) or on physical iOS devices (take the `\*.ipa.zip` file)
> The iOS app can **ONLY** be installed on iOS simulators. There is no build available for physical iOS devices due to
> not being able to install this app on physical iPhones. This is a (security) limitation from Apple.

## About
As mentioned this app will be used for the [appium-boilerplate](https://github.com/webdriverio/appium-boilerplate) so (new) users of WebdriverIO and Appium can play around.
How WebdriverIO and Appium can be used together can be found there, here you will only find the project to build the app.
## Features
This app can/will be used for the [appium-boilerplate](https://github.com/webdriverio/appium-boilerplate) so (new) users
of WebdriverIO and Appium can play around.
How WebdriverIO and Appium can be used together can be found there, here you will only find the code to build the app.

The app holds the following screens:
- **Home:** The intro of the app
- **WebView:** Clicking on the WebView tab will open the WebdriverIO website (**only once**). It is created to test for example switching context and interacting with the WebView
- **Login:** This screen contains a simple Login / Sign Up screen with validations and alerts
- **Forms:** This screen holds some basic form elements to interact with like:
- **:house: Home:** The intro of the app
- **:spider_web: WebView:** Clicking on the WebView tab will open the WebdriverIO website (**only once**). It is created to test for
example switching context and interacting with the WebView
- **:closed_lock_with_key: Login:** This screen contains a simple Login / Sign Up screen with validations and alerts. If Touch/FaceId for iOS
or Fingerprint for Android is enabled, then you will also be able to test that.
- **:page_facing_up: Forms:** This screen holds some basic form elements to interact with like:
- **Input**
- **CheckBox**
- **Switch**
- **DropDown**
- **Button**
- **Swipe:** This screen will hold a carousel so swiping can be tested
- **:pinching_hand: Swipe:** This screen will hold a carousel so horizontal swiping can be tested. It can also be used to test vertical
swiping
- **:pinching_hand: Drag:** This screen holds a simple puzzle. The puzzle can be solved by dragging the pieces into the main image.

## Contributing
If you'd like to contribute feel free to create a PR, please also look at the [building](./docs/BUILDING.md) and [versioning](./docs/VERSIONING.md)-docs.
Please read [CONTRIBUTING.md](./docs/CONTRIBUTING.md) for details on our process for submitting pull requests to us or
building an app release for Android Emulators/Real devices or an iOS Simulator.

## Versioning
We use [SemVer](https://semver.org/) for versioning, see [VERSIONING.md](./docs/VERSIONING.md) for more information.

## Credits
- [Lucas Bento](https://github.com/lucasbento) for helping me out with some React Native questions
- [React Native Elements](https://github.com/react-native-training/react-native-elements-app) for the example Login / Sign Up form
- [react-native-snap-carousel](https://github.com/archriss/react-native-snap-carousel) for the demo of the carousel
- [Tele2 SelectInput](https://github.com/Tele2-NL/react-native-select-input) for the select input component
## Build With
- [React Native](https://reactnative.dev/)
File renamed without changes.