Browse Source

Merge remote-tracking branch 'remotes/origin/master' into feature_permissions

pull/332/head
Sebastian Stehle 7 years ago
parent
commit
a4d83ef344
  1. 5
      src/Squidex.Domain.Apps.Core.Operations/HandleRules/RuleService.cs
  2. 8
      src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/ContentDataGraphType.cs
  3. 5
      src/Squidex.Domain.Apps.Entities/Schemas/SchemaExtensions.cs
  4. 13
      tests/Squidex.Domain.Apps.Core.Tests/Operations/HandleRules/RuleServiceTests.cs
  5. 21
      tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/GraphQLQueriesTests.cs
  6. 9
      tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/GraphQLTestBase.cs

5
src/Squidex.Domain.Apps.Core.Operations/HandleRules/RuleService.cs

@ -56,6 +56,11 @@ namespace Squidex.Domain.Apps.Core.HandleRules
Guard.NotNull(rule, nameof(rule));
Guard.NotNull(@event, nameof(@event));
if (!rule.IsEnabled)
{
return null;
}
if (!(@event.Payload is AppEvent appEvent))
{
return null;

8
src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/ContentDataGraphType.cs

@ -43,21 +43,23 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types
foreach (var partitionItem in partition)
{
var key = partitionItem.Key;
var resolver = new FuncFieldResolver<object>(c =>
{
if (((ContentFieldData)c.Source).TryGetValue(c.FieldName, out var value))
if (((ContentFieldData)c.Source).TryGetValue(key, out var value))
{
return fieldInfo.Resolver(value, c);
}
else
{
return fieldInfo;
return null;
}
});
fieldGraphType.AddField(new FieldType
{
Name = partitionItem.Key,
Name = key.EscapePartition(),
Resolver = resolver,
ResolvedType = fieldInfo.ResolveType,
Description = field.RawProperties.Hints

5
src/Squidex.Domain.Apps.Entities/Schemas/SchemaExtensions.cs

@ -18,6 +18,11 @@ namespace Squidex.Domain.Apps.Entities.Schemas
return new NamedId<Guid>(schema.Id, schema.Name);
}
public static string EscapePartition(this string value)
{
return value.Replace('-', '_');
}
public static string TypeName(this IField field)
{
return field.Name.ToPascalCase();

13
tests/Squidex.Domain.Apps.Core.Tests/Operations/HandleRules/RuleServiceTests.cs

@ -253,5 +253,18 @@ namespace Squidex.Domain.Apps.Core.Operations.HandleRules
Assert.Equal((ruleError.ToString(), RuleResult.Failed, TimeSpan.Zero), result);
}
[Fact]
public async Task Should_not_create_if_rule_disabled()
{
var ruleConfig = new Rule(new ContentChangedTrigger(), new ValidAction());
var ruleEnvelope = Envelope.Create(new ContentCreated());
ruleConfig = ruleConfig.Disable();
var job = await sut.CreateJobAsync(ruleConfig, ruleEnvelope);
Assert.Null(job);
}
}
}

21
tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/GraphQLQueriesTests.cs

@ -268,6 +268,9 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL
myTags {
iv
}
myLocalized {
de_DE
}
myArray {
iv {
nestedNumber
@ -342,6 +345,10 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL
"tag2"
}
},
myLocalized = new
{
de_DE = "de-DE"
},
myArray = new
{
iv = new[]
@ -405,6 +412,9 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL
myTags {
iv
}
myLocalized {
de_DE
}
}
}
}
@ -476,6 +486,10 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL
"tag1",
"tag2"
}
},
myLocalized = new
{
de_DE = "de-DE"
}
}
}
@ -526,6 +540,9 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL
myTags {{
iv
}}
myLocalized {{
de_DE
}}
}}
}}
}}";
@ -589,6 +606,10 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL
"tag1",
"tag2"
}
},
myLocalized = new
{
de_DE = "de-DE"
}
}
}

9
tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/GraphQLTestBase.cs

@ -70,13 +70,15 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL
new GeolocationFieldProperties())
.AddTags(11, "my-tags", Partitioning.Invariant,
new TagsFieldProperties())
.AddArray(12, "my-array", Partitioning.Invariant, f => f
.AddString(12, "my-localized", Partitioning.Language,
new StringFieldProperties())
.AddArray(13, "my-array", Partitioning.Invariant, f => f
.AddBoolean(121, "nested-boolean")
.AddNumber(122, "nested-number"));
A.CallTo(() => app.Id).Returns(appId);
A.CallTo(() => app.Name).Returns(appName);
A.CallTo(() => app.LanguagesConfig).Returns(LanguagesConfig.Build(Language.DE));
A.CallTo(() => app.LanguagesConfig).Returns(LanguagesConfig.Build(Language.DE, Language.GermanGermany));
context = QueryContext.Create(app, user);
@ -126,6 +128,9 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL
.AddField("my-json",
new ContentFieldData()
.AddValue("iv", JToken.FromObject(new { value = 1 })))
.AddField("my-localized",
new ContentFieldData()
.AddValue("de-DE", "de-DE"))
.AddField("my-array",
new ContentFieldData()
.AddValue("iv", new JArray(

Loading…
Cancel
Save