Browse Source

Minor script improvements.

pull/248/head
Sebastian Stehle 8 years ago
parent
commit
c22f712668
  1. 2
      src/Squidex.Domain.Apps.Core.Operations/Scripting/ContentWrapper/ContentDataObject.cs
  2. 2
      src/Squidex.Domain.Apps.Core.Operations/Scripting/ContentWrapper/ContentDataProperty.cs
  3. 16
      tests/Squidex.Domain.Apps.Core.Tests/Operations/Scripting/ContentDataObjectTests.cs

2
src/Squidex.Domain.Apps.Core.Operations/Scripting/ContentWrapper/ContentDataObject.cs

@ -102,7 +102,7 @@ namespace Squidex.Domain.Apps.Core.Scripting.ContentWrapper
{ {
EnsurePropertiesInitialized(); EnsurePropertiesInitialized();
return fieldProperties.GetOrDefault(propertyName) ?? new PropertyDescriptor(new ObjectInstance(Engine) { Extensible = true }, true, false, true); return fieldProperties.GetOrAdd(propertyName, x => new ContentDataProperty(this, new ContentFieldObject(this, new ContentFieldData(), false)));
} }
public override IEnumerable<KeyValuePair<string, PropertyDescriptor>> GetOwnProperties() public override IEnumerable<KeyValuePair<string, PropertyDescriptor>> GetOwnProperties()

2
src/Squidex.Domain.Apps.Core.Operations/Scripting/ContentWrapper/ContentDataProperty.cs

@ -30,7 +30,7 @@ namespace Squidex.Domain.Apps.Core.Scripting.ContentWrapper
{ {
if (value == null || !value.IsObject()) if (value == null || !value.IsObject())
{ {
throw new JavaScriptException("Can only assign object to content data."); throw new JavaScriptException("You can only assign objects to content data.");
} }
var obj = value.AsObject(); var obj = value.AsObject();

16
tests/Squidex.Domain.Apps.Core.Tests/Operations/Scripting/ContentDataObjectTests.cs

@ -32,6 +32,22 @@ namespace Squidex.Domain.Apps.Core.Operations.Scripting
Assert.Equal(expected, result); Assert.Equal(expected, result);
} }
[Fact]
public void Should_update_data_when_setting_lazy_field()
{
var original = new NamedContentData();
var expected =
new NamedContentData()
.AddField("number",
new ContentFieldData()
.AddValue("iv", 1.0));
var result = ExecuteScript(original, @"data.number.iv = 1");
Assert.Equal(expected, result);
}
[Fact] [Fact]
public void Should_update_data_defining_property_for_content() public void Should_update_data_defining_property_for_content()
{ {

Loading…
Cancel
Save