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();
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()

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())
{
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();

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);
}
[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]
public void Should_update_data_defining_property_for_content()
{

Loading…
Cancel
Save