realm-js/tests
Mark Rowe c2de29ab0c Fix an issue where `Realm.open` would complain about the Realm already
being open with a different schema version

In order to correctly open read-only synchronized Realms, `Realm.open`
would open the Realm without specifying a schema or schema version, wait
for any remote changes to be downloaded (if appropriate), and then
re-open the Realm with the specified schema and schema version. This
would lead to an exception about the Realm being open with a different
schema version if the Realm had previously been opened with a different
schema version, due to the way `RealmCoordinator` caches information
about the schema of open Realms.

We address this by making two changes:
1. `Realm.open` for non-synchronized Realms no longer goes through
`_waitForDownload`. This means the dance described above where the Realm
is opened twice is not used for local Realms.
2. `_waitForDownload` no longer keeps the `Realm` alive until after its
callback has returned. It instead keeps the `SyncSession` alive. This is
sufficient to avoid the connection being torn down and having to
reconnect when `_waitForDownload`'s callback later opens the Realm with
the correct schema and schema version, while also allowing for
`RealmCoordinator`'s cached information to be cleared when the
schemaless Realm is closed prior to the Realm being reopened.

In addition, tests have been added that reproduced the problem in both a
local and sync context.
2017-12-18 14:54:08 -08:00
..
data Forgotten file 2017-09-29 21:52:57 +03:00
electron Link against OpenSSL when building for Electron (#1413) 2017-10-16 11:02:35 +02:00
ios Create a global named `global` when running JSC tests 2017-09-26 11:40:22 -07:00
js Fix an issue where `Realm.open` would complain about the Realm already 2017-12-18 14:54:08 -08:00
react-test-app fix android test app build and the script for android tests 2017-12-14 12:17:49 +02:00
spec Download ROS 2.0 from npm for testing 2017-09-21 02:22:49 +03:00
test-runners correct test-runners tests 2017-03-27 19:18:56 +03:00
.eslintrc.json Fix linter issues (#1132) 2017-07-10 16:53:00 +02:00
.gitignore Sync and fine grained notifications 2016-10-04 15:07:14 -07:00
.npmignore don't include ios app in the package 2016-11-17 07:35:51 -08:00
index.js upgrade RN in test app + fix simulators handling + fix test app to run tests immediatelly and exit afterwards 2017-12-04 15:56:42 +02:00
package.json Cleaning up 2017-09-27 16:00:45 +02:00