test: ✅ add some test fixes #112
customers.yml
on: push
pre-check
3s
call-build-test
/
build-test
26m 22s
call-deploy
/
deploy
Annotations
10 errors and 11 warnings
FoodDelivery.Services.Customers.EndToEndTests.Customers.Features.CreatingCustomer.v1.CreateCustomerTests ► can returns created status code using valid dto and auth credentials:
tests/Services/Customers/FoodDelivery.Services.Customers.EndToEndTests/Customers/Features/CreatingCustomer/v1/CreateCustomerTests.cs#L38
Failed test found in:
tests/Services/Customers/FoodDelivery.Services.Customers.EndToEndTests/TestResults/test-results.trx
Error:
Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException : Expected response to be HttpStatusCode.Created {value: 201}, but found HttpStatusCode.InternalServerError {value: 500}.
The HTTP response was:
HTTP/1.1 500 InternalServerError
api-supported-versions: 1.0
Content-Type: application/problem+json
Content-Length: 2713
{
"type": "https://tools.ietf.org/html/rfc9110#section-15.6.1",
"title": "System.NullReferenceException",
"status": 500,
"detail": "Object reference not set to an instance of an object.",
"exception": {
"details": "System.NullReferenceException: Object reference not set to an instance of an object.\n at FoodDelivery.Services.Customers.Customers.Features.CreatingCustomer.v1.CreateCustomerEndpoint.HandleAsync(CreateCustomerRequestParameters requestParameters) in /home/runner/work/food-delivery-microservices/food-delivery-microservices/src/Services/Customers/FoodDelivery.Services.Customers/Customers/Features/CreatingCustomer/v1/CreateCustomerEndpoint.cs:line 43\n at Microsoft.AspNetCore.Http.RequestDelegateFactory.ExecuteTaskResult[T](Task\u00601 task, HttpContext httpContext)\n at Microsoft.AspNetCore.Http.RequestDelegateFactory.\u003C\u003Ec__DisplayClass102_2.\u003C\u003CHandleRequestBodyAndCompileRequestDelegateForJson\u003Eb__2\u003Ed.MoveNext()\n--- End of stack trace from previous location ---\n at Microsoft.AspNetCore.Routing.EndpointMiddleware.\u003CInvoke\u003Eg__AwaitRequestTask|7_0(Endpoint endpoint, Task requestTask, ILogger logger)\n at Microsoft.AspNetCore.RateLimiting.RateLimitingMiddleware.InvokeInternal(HttpContext context, EnableRateLimitingAttribute enableRateLimitingAttribute)\n at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)\n at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)\n at Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext)\n at BuildingBlocks.Web.Middlewares.CaptureException.CaptureExceptionMiddlewareImp.Invoke(HttpContext context) in /home/runner/work/food-delivery-microservices/food-delivery-microservices/src/BuildingBlocks/BuildingBlocks.Web/Middlewares/CaptureException/CaptureExceptionMiddlewareImp.cs:line 16\n at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context)",
"headers": {
"Content-Type": [
"application/json; charset=utf-8"
],
"Content-Length": [
"34"
],
"Accept": [
"application/json"
],
"Authorization": [
"FakeBearer ***"
],
"Host": [
"localhost"
]
},
"path": "/api/v1/customers/",
"endpoint": "Create customer",
"routeValues": {
"version": "1"
}
}
}
The originating HTTP request was:
POST http://localhost/api/v1/customers/ HTTP 1.1
Accept: application/json
Authorization: FakeBearer ***
Content-Type: application/json; charset=utf-8
Content-Length: 34
{
"Email": "Kara_Bernier@yahoo.com"
}
|
FoodDelivery.Services.Customers.EndToEndTests.Customers.Features.CreatingCustomer.v1.CreateCustomerTests ► can returns valid response using valid dto and auth credentials:
tests/Shared/Tests.Shared/Extensions/HttpResponseMessageExtensions.cs#L99
Failed test found in:
tests/Services/Customers/FoodDelivery.Services.Customers.EndToEndTests/TestResults/test-results.trx
Error:
Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException : Expected HttpStatusCode to be successful (2xx), but found HttpStatusCode.InternalServerError {value: 500}.
|
FoodDelivery.Services.Customers.EndToEndTests.Customers.Features.CreatingCustomer.v1.CreateCustomerTests ► must returns bad request status code when email is invalid:
tests/Shared/Tests.Shared/Extensions/HttpResponseMessageExtensions.cs#L77
Failed test found in:
tests/Services/Customers/FoodDelivery.Services.Customers.EndToEndTests/TestResults/test-results.trx
Error:
Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException : Expected responseProblemDetails!.Title to be "ValidationException" with a length of 19, but "System.NullReferenceException" has a length of 29, differs near "Sys" (index 0).
|
FoodDelivery.Services.Customers.EndToEndTests.Customers.Features.CreatingCustomer.v1.CreateCustomerTests ► must returns conflict status code when customer already exists:
tests/Shared/Tests.Shared/Extensions/HttpResponseMessageExtensions.cs#L25
Failed test found in:
tests/Services/Customers/FoodDelivery.Services.Customers.EndToEndTests/TestResults/test-results.trx
Error:
Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException : Expected property responseProblemDetails.Detail to be "Customer with email 'Damon49@yahoo.com' already exists." with a length of 55, but "Object reference not set to an instance of an object." has a length of 53, differs near "Obj" (index 0).
Expected property responseProblemDetails.Title to be "CustomerAlreadyExistsException" with a length of 30, but "System.NullReferenceException" has a length of 29, differs near "Sys" (index 0).
With configuration:
- Use declared types and members
- Compare enums by value
- Compare tuples by their properties
- Compare anonymous types by their properties
- Compare records by their members
- Include non-browsable members
- Try to match member by name
- Try to match member by name
- Try to match member by name
- Try to match member by name
- Invoke Action<DateTimeOffset> when info => info.RuntimeType.IsSameOrInherits(System.DateTimeOffset)
- Invoke Action<DateTime> when info => info.RuntimeType.IsSameOrInherits(System.DateTime)
- Be strict about the order of items in byte arrays
- Without automatic conversion.
|
FoodDelivery.Services.Customers.EndToEndTests.Customers.Features.GettingCustomerById.v1.GetCustomerByIdTests ► can returns valid response using valid id and auth credentials:
tests/Services/Customers/FoodDelivery.Services.Customers.EndToEndTests/Customers/Features/GettingCustomerById/v1/GetCustomerByIdTests.cs#L57
Failed test found in:
tests/Services/Customers/FoodDelivery.Services.Customers.EndToEndTests/TestResults/test-results.trx
Error:
Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException : Expected response to satisfy one or more model assertions, but it wasn't:
- expectation has property x.Customer.FirstName that the other object does not have.
- expectation has property x.Customer.LastName that the other object does not have.
- expectation has property x.Customer.FullName that the other object does not have.
- expectation has property x.Customer.Created that the other object does not have.
The HTTP response was:
HTTP/1.1 200 OK
api-supported-versions: 1.0
Content-Type: application/json; charset=utf-8
Content-Length: 425
{
"customer": {
"id": "adcc08dc-7e3c-20be-17d4-d07ba995e0a5",
"customerId": 1,
"identityId": "6eddcaf7-9361-466a-9721-8daf877f46f8",
"email": "Malvina38@hotmail.com",
"name": "Javier Gusikowski",
"country": "Swaziland",
"city": "North Margaretta",
"detailAddress": "93001 Mohammed Greens, West Elaina, Israel",
"nationality": "array",
"birthDate": "2024-09-08T16:58:44.069\u002B00:00",
"phoneNumber": "(\u002B99)2122557399",
"createdAt": "0001-01-01T00:00:00"
}
}
The originating HTTP request was:
GET http://localhost/api/v1/customers/adcc08dc-7e3c-20be-17d4-d07ba995e0a5 HTTP 1.1
Accept: application/json
Authorization: FakeBearer ***
Content-Length: 0
|
FoodDelivery.Services.Customers.EndToEndTests.Customers.Features.GettingCustomerById.v1.GetCustomerByIdTests ► must returns bad request status code with invalid:
tests/Services/Customers/FoodDelivery.Services.Customers.EndToEndTests/Customers/Features/GettingCustomerById/v1/GetCustomerByIdTests.cs#L140
Failed test found in:
tests/Services/Customers/FoodDelivery.Services.Customers.EndToEndTests/TestResults/test-results.trx
Error:
Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException : Expected response to satisfy one or more model assertions, but it wasn't:
- expected pr.Detail to be "'Id' must not be empty." with a length of 23, but "[{"Field":"Id","Message":"'Id' must not be empty."}]" has a length of 52, differs near "[{"" (index 0).
- expected pr.Title to be "ValidationException" with a length of 19, but "BuildingBlocks.Core.Exception.Types.ValidationException" has a length of 55, differs near "Bui" (index 0).
- expected pr.Type to be "https://tools.ietf.org/html/rfc7231#section-6.5.1" with a length of 49, but "https://tools.ietf.org/html/rfc9110#section-15.6.1" has a length of 50, differs near "911" (index 31).
The HTTP response was:
HTTP/1.1 500 InternalServerError
api-supported-versions: 1.0
Content-Type: application/problem+json
Content-Length: 1068
{
"type": "https://tools.ietf.org/html/rfc9110#section-15.6.1",
"title": "BuildingBlocks.Core.Exception.Types.ValidationException",
"status": 500,
"detail": "[{\u0022Field\u0022:\u0022Id\u0022,\u0022Message\u0022:\u0022\u0027Id\u0027 must not be empty.\u0022}]",
"exception": {
"details": "BuildingBlocks.Core.Exception.Types.ValidationException",
"headers": {
"Accept": [
"application/json"
],
"Authorization": [
"FakeBearer ***"
],
"Host": [
"localhost"
]
},
"path": "/api/v1/customers/00000000-0000-0000-0000-000000000000",
"endpoint": "Get customer by id",
"routeValues": {
"id": "00000000-0000-0000-0000-000000000000",
"version": "1"
}
}
}
The originating HTTP request was:
GET http://localhost/api/v1/customers/00000000-0000-0000-0000-000000000000 HTTP 1.1
Accept: application/json
Authorization: FakeBearer ***
Content-Length: 0
|
FoodDelivery.Services.Customers.EndToEndTests.Customers.Features.GettingCustomerById.v1.GetCustomerByIdTests ► must returns not found status code when customer not exists:
tests/Services/Customers/FoodDelivery.Services.Customers.EndToEndTests/Customers/Features/GettingCustomerById/v1/GetCustomerByIdTests.cs#L108
Failed test found in:
tests/Services/Customers/FoodDelivery.Services.Customers.EndToEndTests/TestResults/test-results.trx
Error:
Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException : Expected response to satisfy one or more model assertions, but it wasn't:
- expected pr.Title to be "CustomerNotFoundException" with a length of 25, but "FoodDelivery.Services.Customers.Customers.Exceptions.Application.CustomerNotFoundException" has a length of 90, differs near "Foo" (index 0).
- expected pr.Type to be "https://tools.ietf.org/html/rfc7231#section-6.5.4" with a length of 49, but "https://tools.ietf.org/html/rfc9110#section-15.6.1" has a length of 50, differs near "911" (index 31).
The HTTP response was:
HTTP/1.1 500 InternalServerError
api-supported-versions: 1.0
Content-Type: application/problem+json
Content-Length: 1144
{
"type": "https://tools.ietf.org/html/rfc9110#section-15.6.1",
"title": "FoodDelivery.Services.Customers.Customers.Exceptions.Application.CustomerNotFoundException",
"status": 500,
"detail": "Customer with id \u00277e8bebfd-bdc6-416f-90f1-3ae416a3424b\u0027 not found.",
"exception": {
"details": "FoodDelivery.Services.Customers.Customers.Exceptions.Application.CustomerNotFoundException",
"headers": {
"Accept": [
"application/json"
],
"Authorization": [
"FakeBearer ***"
],
"Host": [
"localhost"
]
},
"path": "/api/v1/customers/7e8bebfd-bdc6-416f-90f1-3ae416a3424b",
"endpoint": "Get customer by id",
"routeValues": {
"id": "7e8bebfd-bdc6-416f-90f1-3ae416a3424b",
"version": "1"
}
}
}
The originating HTTP request was:
GET http://localhost/api/v1/customers/7e8bebfd-bdc6-416f-90f1-3ae416a3424b HTTP 1.1
Accept: application/json
Authorization: FakeBearer ***
Content-Length: 0
|
FoodDelivery.Services.Customers.IntegrationTests.Users.Features.RegisteringUser.v1.Events.External.UserRegisteredTests ► should create new customer in postgres write db when after consuming message:
tests/Shared/Tests.Shared/Fixtures/SharedFixture.cs#L422
Failed test found in:
tests/Services/Customers/FoodDelivery.Services.Customers.IntegrationTests/TestResults/test-results.trx
Error:
System.AggregateException : One or more errors occurred. (Condition not met for the test in the 'True' second.) (A task was canceled.)
---- System.TimeoutException : Condition not met for the test in the 'True' second.
---- System.Threading.Tasks.TaskCanceledException : A task was canceled.
|
FoodDelivery.Services.Customers.IntegrationTests.Users.Features.RegisteringUser.v1.Events.External.UserRegisteredTests ► should create new mongo customer read model in the mongodb after consuming message:
tests/Shared/Tests.Shared/Fixtures/SharedFixture.cs#L422
Failed test found in:
tests/Services/Customers/FoodDelivery.Services.Customers.IntegrationTests/TestResults/test-results.trx
Error:
System.AggregateException : One or more errors occurred. (Condition not met for the test in the 'True' second.) (A task was canceled.)
---- System.TimeoutException : Condition not met for the test in the 'True' second.
---- System.Threading.Tasks.TaskCanceledException : A task was canceled.
|
FoodDelivery.Services.Customers.IntegrationTests.Users.Features.RegisteringUser.v1.Events.External.UserRegisteredTests ► should save customer created integration event in the outbox after consuming message:
tests/Shared/Tests.Shared/Fixtures/SharedFixture.cs#L422
Failed test found in:
tests/Services/Customers/FoodDelivery.Services.Customers.IntegrationTests/TestResults/test-results.trx
Error:
System.AggregateException : One or more errors occurred. (Condition not met for the test in the 'True' second.) (A task was canceled.)
---- System.TimeoutException : Condition not met for the test in the 'True' second.
---- System.Threading.Tasks.TaskCanceledException : A task was canceled.
|
pre-check
The following actions use a deprecated Node.js version and will be forced to run on node20: webiny/action-conventional-commits@v1.1.0. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
call-build-test / build-test:
src/BuildingBlocks/BuildingBlocks.Abstractions/Domain/IHaveIdentity.cs#L6
Possible null reference return.
|
call-build-test / build-test:
src/BuildingBlocks/BuildingBlocks.Abstractions/Events/EventEnvelopeMetadata.cs#L8
Single-line comment should be preceded by blank line (https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/SA1515.md)
|
call-build-test / build-test:
src/BuildingBlocks/BuildingBlocks.Abstractions/Messaging/IIntegrationEventHandler.cs#L5
Rename type name IIntegrationEventHandler so that it does not end in 'EventHandler' (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1711)
|
call-build-test / build-test:
src/BuildingBlocks/BuildingBlocks.Abstractions/Events/IDomainEventHandler.cs#L3
Rename type name IDomainEventHandler so that it does not end in 'EventHandler' (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1711)
|
call-build-test / build-test:
src/BuildingBlocks/BuildingBlocks.Abstractions/Events/IEventHandler.cs#L5
Rename type name IEventHandler so that it does not end in 'EventHandler' (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1711)
|
call-build-test / build-test:
src/BuildingBlocks/BuildingBlocks.Abstractions/Web/Module/IModuleConfiguration.cs#L4
Rename namespace BuildingBlocks.Abstractions.Web.Module so that it no longer conflicts with the reserved language keyword 'Module'. Using a reserved keyword as the name of a namespace makes it harder for consumers in other languages to use the namespace. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1716)
|
call-build-test / build-test:
src/BuildingBlocks/BuildingBlocks.Abstractions/Events/Internal/IDomainNotificationEventHandler.cs#L3
Rename type name IDomainNotificationEventHandler so that it does not end in 'EventHandler' (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1711)
|
call-build-test / build-test:
src/BuildingBlocks/BuildingBlocks.Abstractions/Web/Storage/IRequestStorage.cs#L5
Rename virtual/interface member IRequestStorage.Set<T>(string, T) so that it no longer conflicts with the reserved language keyword 'Set'. Using a reserved keyword as the name of a virtual/interface member makes it harder for consumers in other languages to override/implement the member. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1716)
|
call-build-test / build-test:
src/BuildingBlocks/BuildingBlocks.Abstractions/Web/Storage/IRequestStorage.cs#L8
Rename virtual/interface member IRequestStorage.Get<T>(string) so that it no longer conflicts with the reserved language keyword 'Get'. Using a reserved keyword as the name of a virtual/interface member makes it harder for consumers in other languages to override/implement the member. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1716)
|
call-build-test / build-test:
src/BuildingBlocks/BuildingBlocks.Abstractions/Core/IIdGenerator.cs#L5
Rename virtual/interface member IIdGenerator<TId>.New() so that it no longer conflicts with the reserved language keyword 'New'. Using a reserved keyword as the name of a virtual/interface member makes it harder for consumers in other languages to override/implement the member. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1716)
|