For the Totara Mobile app, we use Detox for implementing end-to-end automated testing. This uses apollo-server-express
to implement the mock data for the API responses.
Detox setup
Below you can find the guidance you need to setup Detox. You will need to install the following:
- Node
8.3.0
or above - AppleSimulatorUtils
Install Detox command line tools
To install the Detox command line tool you will need to ensure detox-cli
is installed globally.
npm install -g detox-cli
Configure mock
Please add config.detox.ts
file under src/totara/lib/
folder with the following content.
const localConfig = { mobileApi: { persistentQuery: false }, disableConsoleYellowBox: true }; export default localConfig;
Mock server
Detox automated testing starts the node server for mocking API requests. It downloads GraphQL schema from the server after app installation using get-graphql-schema
library. Here is the custom command to download and save schema to the e2e/graphql/schema.json
file:
npm run mock:schema:setup
For testing a mock server, it can be started with default data using following command:
node server
To launch the GraphQL playground, where you can play with queries go to the URL:
http://127.0.0.1:8089/totara/mobile/api.php
Build and run the tests
Prior to running tests with Detox you will need to integrate the Detox server configurations to the app. This will replace src/totara/lib/config.local.ts
with src/totara/lib/config.detox.ts
before it the test if built and run. After the Detox test has complete, it will replace the src/totara/lib/config.local.ts
with the original file. Use the following command to make configuration changes and execute Detox tests:
npm run detox:run
Troubleshooting
Below you can find some common troubleshooting guidance.
Cache data
In case you run into dependency issues, you can try running the following command to clear all the cache, modules & pods then reinstall:
npm run clear:all