Browse Source

Add tests for graphql.

pull/596/head
Sebastian 5 years ago
parent
commit
995a000c6f
  1. 14
      backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/AppMutationsGraphType.cs
  2. 70
      backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/GraphQLMutationTests.cs

14
backend/src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/AppMutationsGraphType.cs

@ -66,11 +66,11 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types
AddField(new FieldType
{
Name = $"publish{schemaType}Content",
Name = $"change{schemaType}Content",
Arguments = ContentActions.ChangeStatus.Arguments,
ResolvedType = contentType,
Resolver = ContentActions.ChangeStatus.Resolver(appId, schemaId),
Description = $"Publish a {schemaName} content."
Description = $"Change a {schemaName} content."
});
AddField(new FieldType
@ -81,6 +81,16 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types
Resolver = ContentActions.Delete.Resolver(appId, schemaId),
Description = $"Delete an {schemaName} content."
});
AddField(new FieldType
{
Name = $"publish{schemaType}Content",
Arguments = ContentActions.ChangeStatus.Arguments,
ResolvedType = contentType,
Resolver = ContentActions.ChangeStatus.Resolver(appId, schemaId),
Description = $"Publish a {schemaName} content.",
DeprecationReason = $"Use 'change{schemaType}Content' instead"
});
}
Description = "The app mutations.";

70
backend/tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/GraphQLMutationTests.cs

@ -336,7 +336,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL
var query = @"
mutation {
publishMySchemaContent(id: ""<ID>"", status: ""Published"", dueTime: ""<TIME>"", expectedVersion: 10) {
changeMySchemaContent(id: ""<ID>"", status: ""Published"", dueTime: ""<TIME>"", expectedVersion: 10) {
<FIELDS>
}
}".Replace("<ID>", contentId.ToString()).Replace("<TIME>", dueTime.ToString()).Replace("<FIELDS>", TestContent.AllFields);
@ -349,7 +349,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL
{
data = new
{
publishMySchemaContent = TestContent.Response(content)
changeMySchemaContent = TestContent.Response(content)
}
};
@ -364,6 +364,72 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL
.MustHaveHappened();
}
[Fact]
public async Task Should_publish_command_for_status_change_without_due_time()
{
var query = @"
mutation {
changeMySchemaContent(id: ""<ID>"", status: ""Published"", expectedVersion: 10) {
<FIELDS>
}
}".Replace("<ID>", contentId.ToString()).Replace("<FIELDS>", TestContent.AllFields);
commandContext.Complete(content);
var result = await sut.QueryAsync(requestContext, new GraphQLQuery { Query = query });
var expected = new
{
data = new
{
changeMySchemaContent = TestContent.Response(content)
}
};
AssertResult(expected, result);
A.CallTo(() => commandBus.PublishAsync(
A<ChangeContentStatus>.That.Matches(x =>
x.ContentId == contentId &&
x.DueTime == null &&
x.ExpectedVersion == 10 &&
x.Status == Status.Published)))
.MustHaveHappened();
}
[Fact]
public async Task Should_publish_command_for_status_change_with_null_due_time()
{
var query = @"
mutation {
changeMySchemaContent(id: ""<ID>"", status: ""Published"", dueTime: null, expectedVersion: 10) {
<FIELDS>
}
}".Replace("<ID>", contentId.ToString()).Replace("<FIELDS>", TestContent.AllFields);
commandContext.Complete(content);
var result = await sut.QueryAsync(requestContext, new GraphQLQuery { Query = query });
var expected = new
{
data = new
{
changeMySchemaContent = TestContent.Response(content)
}
};
AssertResult(expected, result);
A.CallTo(() => commandBus.PublishAsync(
A<ChangeContentStatus>.That.Matches(x =>
x.ContentId == contentId &&
x.DueTime == null &&
x.ExpectedVersion == 10 &&
x.Status == Status.Published)))
.MustHaveHappened();
}
[Fact]
public async Task Should_publish_command_for_delete()
{

Loading…
Cancel
Save