9ba37107c7
* Install * Create subscriptions * Subscription observing and sorting * Saving last message * Stash * Stash * stash * Stash * Rooms list listing :) * Animated set state * Search working * Fix load rooms on login * stash db class * set active db with path * Remove db on logout * stash * Created updateMessages * Inserting/updating threads * Persisting thread messages * Removed unused list * Loading messages from watermelon * Debounce updates and rerender message * optional fields * Fix realm conflict issues * Fix some render issues * stash * List mount * stash * fix message id * Fix tmsg * - Save subscription.rid as id on watermelon and _id as _id - Send room as param to room view * Throttle room updates * stash * comment removeClippedSubviews * Fetch thread name * try/catch updateMessages * Show loading while RoomView.init is still running * stash * Fix updateMessages * Threads * Delete message * Permalink * Pin * Star * Report * MessageActions refactor * Edit message * Reply message * Add reaction * Auto translate * Fix connection issues * Mark message as error if something happened on the call * Error actions * get custom emoji * Always run console.log when __DEV__ * Try to create serversDB * Don't call updateMessages. Execute that entire logic for one message id instead. * Refactor update messages * ServersDB User [Realm -> Watermelon] * Fix models * Custom emojis * Custom emojis on emoji picker * Frequently used emojis * Fix add reaction on message * stash * Fix * Read messages * Fix thread * Fetch thread header * Follow/unfollow thread * Fix thread * Upload file * Thread tweak * Realm -> Watermelon [Share Extension] * Add RoomsUpdatedAt to Servers Table * Settings * Settings * Fix logout * SendFileMessage ServersDB * ServersDB on serverDropdown * Remove serversDB from Realm * Load thread messages * Delete message * Improve getSettings * Improve * Remove subscription * Remove update * Update room via socket * Small refactor * Fix logout and improve migration * Refactor updateMessages * Improve migration * Remove unnecessary update * Revert remove runAfterInteractions * Fix serverDropdown * Fix merge * Init room actions Watermelon * Room actions Watermelon * Remove realm on room members * Room swipe -> Watermelon * Fix hideChannel * Get roles watermelon * Get permissions watermelon * Users typing + memory db * Auto translate watermelon * New Message View * Selected Users View * try/catch * Get Slash Commands watermelon * Slash Commands message box * Custom emojis message box * Get rooms message box * Room info view * Room info edit * Save active users * Small refactor * Message Actions * hasPermission await * last hasPermission fix * Active users on redux * Add user roles * Users typing on redux and remove memory db * Fix saga delay * Fix few issues * Fix slash commands preview * Draft message * Add muted * Unread count watermelon * Remove realm * Fiz RoomItem rerenders * Remove realm config * Rerender status update on RoomItem * Refactor RoomsListView * Fix load missed messages * Fix room update * Message refactor * Fixing lint * removeClippedSubviews on iOS only * Added few interaction managers * Fix few rerenders * Fix RoomItem status typo * Fix RoomView.SCU * Fix broadcast * Fix user status on RoomActionsView * Fix RocketChat.hasPermission * Fix database inconsistencies * Fix few update issues * Add rxjs and remove with observables * Fix tests * Remove subscriptions * Fix RoomsListView SCU * Change database structure and set all schemas to 1 * Fix RoomsListView search * Fixed errors, removed rerenders and added animation * Fixed a few errors * Fix lint * Fix issues caught by LGTM * fix ios build * Fix load unjoined channel messages * Log on database path on startup * Fix join channel * Remove react-native-realm-path * Set user status on login.user reducer * Fix status not rendering on RoomsListView * Fix few reducers * Fix users going offline * Never use "watermelon" term directly. Replaced by "database" * Fix custom emoji * Creating room from app must update roomUpdatedAt * Log subscribeRoom start * Fix room subscribe right after creating a DM * Refactor is read only on messages actions * Fix typo * Fix typo * Review * Fix schema * Fix muted & freq emoji & unpin & unstar * Remove throttleTime to room info & fix reset on edit room * Fix openServerDropdown spec & Fix unarchive * Fix MessageAction * Refactor RoomInfoEditView * Remove unnecessary condition * Remove unnecessary condition * Remove unnecessary condition * Remove get database * Rename Command.js to SlashCommand.js * Create sanitizer util * Fix indentation * Create subscription.t index * Refactor queries on RoomsListView * Create subscription.name index * Fix getPermissions * Fix indentation * Add missing await * Fix rocketchat.hasPermission * Unnecessary change * Star, pin e delete message refactored * Refactor customEmojis reducer * Remove code * Remove logs * Remove throttle * Call this.init on foreground focus on RoomView * Bump servers schema migration * Always mark message as sent after a success * Fetch only messages needed on updateMessages * Just leave a comment for now * Fetch only subscriptions returned by fetch * Set room param on RoomView header in find room * Update kotlin * Fix auto translate constructor * Fix few setState on constructor * Fix empty room image blinking while mounting * Improve fetch/persist execution for custom emojis, permissions and settings * Query only user tapped on RoomMembersView * Fix typo on canOpenRoom |
||
---|---|---|
.. | ||
helpers | ||
00-onboarding.spec.js | ||
01-welcome.spec.js | ||
02-legal.spec.js | ||
03-forgotpassword.spec.js | ||
04-createuser.spec.js | ||
05-login.spec.js | ||
06-roomslist.spec.js | ||
07-createroom.spec.js | ||
08-room.spec.js | ||
09-roomactions.spec.js | ||
10-roominfo.spec.js | ||
11-changeserver.spec.js | ||
12-broadcast.spec.js | ||
13-profile.spec.js | ||
14-setting.spec.js | ||
15-joinpublicroom.spec.js | ||
README.md | ||
data.js | ||
init.js | ||
mocha.opts |
README.md
Contents:
1. Prepare test environment
1.1. Set up local Rocket Chat server
- Install Rocket Chat meteor app by following this guide.
1.2. Set up detox
- Install dependencies by following this guide (only Step 1).
2. Prepare test data
- Run Rocket Chat meteor app:
meteor npm start
(make sure you to run this command from project that you created on Step 1.1.). - Open
localhost:3000
in browser. - Sign up as admin.
- Create public room
detox-public
. - Create user with role:
user
, username:detoxrn
, email:YOUR@EMAIL.COM
, password:123
. - Create user with role:
user
, username:YOUR.NAME
, email:YOUR.SECOND@EMAIL.COM
, password:123
. - In file
e2e/data.js
change valuesexistingEmail
withYOUR.SECOND@EMAIL.COM
,existingName
withYOUR.NAME
. - Login as user
detoxrn
-> open My Account -> Settings tab -> click Enable 2FA -> copy TTOLP code -> paste TTOLP code into./e2e/data.js
file into field:alternateUserTOTPSecret
.
3. Running tests
3.1. iOS
- Build app with detox:
detox build -c ios.sim.release
- Open Simulator which is used in tests (check in package.json under detox section) from Xcode and make sure that software keyboard is being displayed. To toggle keyboard press
cmd+K
. - Run tests:
detox test -c ios.sim.release
3.1. Android
- Build app with detox:
detox build -c android.emu.debug
- Run:
react-native start
- Run Android emulator with name
ANDROID_API_28
via Android studio orcd /Users/USERNAME/Library/Android/sdk/emulator/ && ./emulator -avd ANDROID_API_28
Note: if you need to run tests on different Android emulator then simply change emulator name in ./package.json detox configurations - Run tests:
detox test -c android.emu.debug
4. FAQ
4.1. Detox build fails
- Delete
node_modules
,ios/build
,android/build
:rm -rf node_modules && rm -rf ios/build && rm -rf android/build
- Install packages:
yarn install
- Kill metro bundler server by closing terminal or with following command:
lsof -ti:8081 | xargs kill
- Clear metro bundler cache:
watchman watch-del-all && rm -rf $TMPDIR/react-native-packager-cache-* && rm -rf $TMPDIR/metro-bundler-cache-*
- Make sure you have all required environment.
- Now try building again with
detox build
(with specific configuration).
4.2. Detox iOS test run fails
- Check if your meteor app is running by opening
localhost:3000
in browser. - Make sure software keyboard is displayed in simulator when focusing some input. To enable keyboard press
cmd+K
. - Make sure you have prepared all test data.
- Sometimes detox e2e tests fail for no reason so all you can do is simply re-run again.