mirror of
https://github.com/status-im/realm-js.git
synced 2025-01-11 06:46:03 +00:00
parent
37d5a12094
commit
33e0f5d8b1
@ -79,7 +79,7 @@ bool ObjectSetProperty(JSContextRef ctx, JSObjectRef jsObject, JSStringRef jsPro
|
||||
Object *obj = RJSGetInternal<Object *>(jsObject);
|
||||
obj->set_property_value(ctx, RJSStringForJSString(jsPropertyName), value, true);
|
||||
} catch (std::exception &ex) {
|
||||
if (*exception) {
|
||||
if (exception) {
|
||||
*exception = RJSMakeError(ctx, ex);
|
||||
}
|
||||
return false;
|
||||
|
@ -98,6 +98,10 @@ namespace realm {
|
||||
{
|
||||
using Accessor = NativeAccessor<ValueType, ContextType>;
|
||||
|
||||
if (!realm->is_in_transaction()) {
|
||||
throw std::runtime_error("Can only set property values within a transaction.");
|
||||
}
|
||||
|
||||
size_t column = property.table_column;
|
||||
switch (property.type) {
|
||||
case PropertyTypeBool:
|
||||
|
@ -44,6 +44,7 @@ var ObjectTests = {
|
||||
var basicTypesValues = [true, 1, 1.1, 1.11, 'string', new Date(1), 'DATA'];
|
||||
var realm = new Realm({schema: [BasicTypesObjectSchema]});
|
||||
var obj = null;
|
||||
|
||||
realm.write(function() {
|
||||
obj = realm.create('BasicTypesObject', basicTypesValues);
|
||||
obj.boolCol = false;
|
||||
@ -54,6 +55,11 @@ var ObjectTests = {
|
||||
obj.dateCol = new Date(2);
|
||||
obj.dataCol = 'b';
|
||||
});
|
||||
|
||||
TestCase.assertThrows(function() {
|
||||
obj.boolCol = true;
|
||||
}, 'can only set property values in a write transaction');
|
||||
|
||||
TestCase.assertEqual(obj.boolCol, false, 'wrong bool value');
|
||||
TestCase.assertEqual(obj.intCol, 2, 'wrong int value');
|
||||
TestCase.assertEqualWithTolerance(obj.floatCol, 2.2, 0.000001, 'wrong float value');
|
||||
@ -90,6 +96,10 @@ var ObjectTests = {
|
||||
});
|
||||
TestCase.assertEqual(realm.objects('TestObject').length, 2);
|
||||
|
||||
TestCase.assertThrows(function() {
|
||||
obj.objectCol1 = obj.objectCol;
|
||||
}, 'can only set property values in a write transaction');
|
||||
|
||||
// set/reuse object property
|
||||
realm.write(function() {
|
||||
obj.objectCol1 = obj.objectCol;
|
||||
|
Loading…
x
Reference in New Issue
Block a user