Commit Graph

73 Commits

Author SHA1 Message Date
Christian Melchior 98b75a1317
Add better error message for wrong Realm types (#2151) 2018-11-27 14:46:30 +01:00
Nikola Irinchev d88143711c
Unit test for partial Realm schema updates (#2064)
* Add a unit test to verify that the schema of partial Realms gets updated after open

* Add another test that demonstrates the problem

* ensure realm is uploaded

* Add a test to ensure the schema change handler is invoked
2018-10-17 08:51:26 +02:00
Kenneth Geisshirt ffb48ec2ed
Enhancements of subscription api (#2060)
* Adding Realm.subscriptions() and Realm.unsubscribe()
* Update changelog
* RN support
2018-10-10 12:00:04 +02:00
Nikola Irinchev e5c9016424
Handle sync config in Realm.deleteFile (#2045)
* Handle sync config in Realm.deleteFile

* Add changelog and address review comment

* Try to fix tests

* Fix rebase conflicts
2018-10-04 11:04:15 +02:00
Christian Melchior 434e8ca2bc
Align permission API's with Java/Swift (#2036) 2018-10-04 10:09:31 +02:00
Igor Mandrigin 67dccf1e47 Fix memory corruption in writeCopyTo. (#2020) 2018-09-13 12:34:11 +02:00
Thomas Goyne cd4046eb7a Update a failing test 2018-07-03 08:45:41 -07:00
Christian Melchior fa96eeec9e Fix tests 2018-06-19 00:19:49 +02:00
Christian Melchior d75150aa93 Add support for creating template objects 2018-06-18 22:55:01 +02:00
Kenneth Geisshirt 58671dd59e
React to schema changes (#1831)
* Adding schema change listener (#1825).
2018-05-29 12:22:34 +02:00
astigsen f85fe2f91d Fix Realm.open() with no config 2018-05-25 12:00:42 +02:00
Kenneth Geisshirt 1bdff30691 Run only permission tests on node. Disable writeCopyTo test. 2018-05-16 13:11:46 +02:00
Thomas Goyne c349d5f185 Retry on network errors when refreshing admin tokens (#1747)
* Retry on network errors when refreshing admin tokens

This is the same logic used for non-admin token user fetches, which seems to
already work fine in practice.
2018-04-12 18:20:25 +02:00
Valerii Hiora c3a83f1866 Added `writeCopyTo` functionality (#1715)
* Added `writeCopyTo` functionality
* Fixes #1678
* Added optional `encryptionKey` to `writeCopyTo`
2018-04-03 11:50:03 +02:00
Kenneth Geisshirt abb04e399b
Default sync realm (#1693)
* Configuration for default Realm.
* Use url-parse to make RN happy.
2018-03-09 10:40:45 +01:00
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
Yavor Georgiev 4e6cb299b3
Add disableFormatUpgrade to Realm configuration (#1566) 2017-12-14 07:53:03 +01:00
Kenneth Geisshirt aed1ea104b
Adding property Realm.isClosed. (#1560)
* Adding property Realm.isClosed.
2017-12-13 10:09:26 +01:00
Kenneth Geisshirt 19d05c2021 Merge `master` into `2.0.x` (#1377)
* Add 'deleteRealmIfMigrationNeeded' to configuration to delete a Realm if migration needed (#502)
* Minor update due to changes in objec store
2017-10-03 13:37:21 +02:00
Thomas Goyne c9a3548f32 Add some missing property type validation 2017-09-26 14:43:44 -07:00
Thomas Goyne 9a31febc4c Add support for lists of things other than objects
And add a shorthand syntax for schema definitions.
2017-09-26 11:40:22 -07:00
Thomas Goyne 0c9d7ca54e Improve error reporting for incorrect argument counts for Realm methods
Report the expected and actual arg counts for too many arguments, and behave
more like normal JS when too few are supplied (i.e. complain about the next
argument being undefined rather than just saying 'Invalid arguments').
2017-09-15 15:00:13 -07:00
Thomas Goyne 53ca09839e Check the exception message in all Realm tests which assert an exception is thrown 2017-09-14 16:40:58 -07:00
astigsen 208aa8ee46 Added support for in-memory realms (#1304)
* Added support for in-memory realms
2017-09-13 20:42:23 +02:00
Ashwin Phatak 119cd79e5d Add Realm.deleteFile API (#363) 2017-09-07 10:12:59 +05:30
Kenneth Geisshirt 85fb49b354 Adding methods and property to manually control write transactions (#1216)
* Adding methods and property to manually control write transactions
2017-08-21 17:48:53 +02:00
Kenneth Geisshirt bd28c05936 Add shouldCompactOnLaunch option to configuration (#1209)
* Adding shouldCompactOnLaunch option to configuration
* Adding Realm.compact()
2017-08-18 14:22:29 +02:00
Yavor Georgiev 5dd9264225
Add `Realm.empty` 2017-07-12 13:02:21 +02:00
Mark Rowe 89149c0a75 Make it possible to assign a List or Results to a List property once more (#1126)
* Make it possible to assign a List or Results to a List property.

The change made in #1069 to improve error messages when values of
incorrect types were assigned to a given property was being too
narrow in the types it accepted for list properties, allowing only
arrays. Lists and Results are now accepted once more.

* Update CHANGELOG.md
2017-07-10 13:45:49 +02:00
Marius Rackwitz 9e0a9a3bd3 Add support for accessing linking objects / backlinks (#1101)
* Add support for linkingObjects

* Test linkingObjects

* Borrow names helper from list tests

* include computed properties when serializing the schema for the RN debugger

* add API docs

* review comments

* Expose admin users to JS (#1100)

The JS binding used to conflate `SyncUser::is_admin()` with the user being created by calling `Realm.Sync.User.adminToken()`, but now that we expose a user’s role on the server under `is_admin()` this supposition is no longer correct.

#1097 attempted to fix one such case, but fixing it only uncovered another: in `UserClass<T>::all_users()`.  I’ve gone through all the callsites of `SyncUser::is_admin()` to make sure they don’t assume an admin token user.

* [1.8.3] Bump version

* add linkingObjects method to Realm.Object

* changelog
2017-06-29 11:59:10 +02:00
Mark Rowe 30e58022cf Include property names in type error exceptions thrown by Realm.create (#1069)
* Add and adopt `Value::is_binary` / `Value::to_binary` / `Value::from_binary`.

These methods allow conversions between `BinaryData` and the equivalent
JavaScript types without using `NativeAccessor`. Instead,
`NativeAccessor` now itself delegates to these methods.

* Have `NativeAccessor::value_for_property` and `RealmObjectClass::set_property`
verify that values are valid for the property in question.

If not, we throw an exception that includes the name and type of the
property in question.

`NativeAccessor` is changed to always hold a reference to a `Realm` and
an `ObjectSchema` in order to make this validation possible.

* Fix the Windows build.

* Remove an unused, incorrect forward declaration of a template class
  named `Realm` that caused ambiguity with object store's `Realm` class.
* Disambiguate between `realm::js::PropertyType` and
  `realm::PropertyType`.

* Update CHANGELOG.md
2017-06-20 14:40:01 +02:00
Yavor Georgiev db8ebd9333 Node.js Win32 support (#864)
* Remove the windows install check

* Node.js Win32 support

* Bring back the `REALM_HAVE_CONFIG` definition

* Download core for Windows when building

* Implement cross-platform node platform.cpp with libuv

* wip

* Make jasmine run quicker

https://github.com/jasmine/jasmine/issues/1204

* Wait for worker process to close in AsyncTests

* Cross-platform paths in tests

* Normalize path separator for forward slash on Windows

* MSVC exception voodoo

* cross-platform uv_cwd

* fix linux build

* make the prepublish script cross-platform

* Disable encryption tests on windows

* ignore vendor/realm-node

* jenkinsfile work

* Only run the prepublish script for publish and pack

* Jenkinsfile work

* Include gyp files in package

* rewrite default_realm_file_directory()

* fix React Native Android build

* delete all realm artifacts in remove_realm_files_from_directory

* bring back build environment variables

* node-pre-gyp windows

* Update CHANGELOG.md
2017-03-07 23:24:30 +01:00
Kristian Dupont bd8a27b963 Improve error message for typeerrors (#785)
* Add a test

* Catch TypeErrorException

* Make exception asserts check error type

* Remove commented-out testcase and check for error type

* Test for Error, not TypeError
2017-01-10 13:41:56 +01:00
Mark Rowe 9d858d0329 Update to object store master to pick up the fix for the global notifier. (#778) 2017-01-05 11:56:11 +01:00
Nabil Hachicha 914866beff Nh/fix 753 (#755)
* Fix Android compilation (Using  EPOLL commit helper)

* Fixe Symbol.iterator on Android

* Fixing testSchema test for Release
2016-12-28 17:16:37 +01:00
Kristian Dupont c1e7ddcda1 Throw when deleting detached object (#694)
* Throw when deleting detached object

* Update error message

* Add user file

* Throw when deleting detached object

* Update error message

* Revert "Add user file"

This reverts commit 2948f4cfc2dfd2d5d75594307b1e89806b817eb7.
2016-12-20 16:28:02 +01:00
Kristian Dupont 43d94d1b8b Add checks for removeListener 2016-12-07 16:31:52 +01:00
Kristian Dupont 1d4bb7c2ad Add more tests and fix add_notification 2016-12-07 16:31:52 +01:00
Kristian Dupont bf85c285a0 Add tests for closed-realm access protection 2016-12-07 16:31:52 +01:00
Ari Lazier 9d0df0de3d Sync and fine grained notifications 2016-10-04 15:07:14 -07:00
Marius Rackwitz 9d25435105 [Tests] Stop using Realm.Types 2016-08-04 10:10:28 -07:00
Scott Kyle 2384cc4036 Reset Realm.defaultPath in testDefaultPath
Or else the rest of the tests use the new default path!
2016-06-13 17:24:43 -07:00
Ari Lazier 0a4e0665ae fixes for typos and added upsert test 2016-06-13 14:46:26 -07:00
Scott Kyle cd0bb079b7 Implement objectForPrimaryKey() method
Resolves #328
2016-06-03 16:51:32 -07:00
Scott Kyle af70bb3c63 Fix all linting issues inside JS tests 2016-05-26 15:47:30 -07:00
Scott Kyle 48394d9c19 Automatically handle deleting test Realms
No longer leave this up to the test. All testing passes through the runTest() function, so we use that spot to delete the Realms. It also now deletes them beforehand too since a crash in a previous run could leave a Realm in place.
2016-05-26 15:47:30 -07:00
Ari Lazier 027d4fd153 fix for upgrading optional date properties 2016-05-26 13:30:51 -07:00
Ari Lazier 0f74101074 Merge pull request #423 from realm/al-timestamp
Use new timestamp format
2016-05-16 13:52:31 -07:00
Scott Kyle 7a26d192ba Merge pull request #427 from realm/sk-object-inheritance
Fix ES6 class inheritance of Realm.Object with Babel
2016-05-16 11:17:45 -07:00
Scott Kyle c803efd01b Use ".realm" extension in tests for proper cleanup 2016-05-13 15:47:57 -07:00