test: repair test suite broken by feature drift (red -> 81 passing)
CI/CD / CI · API (dotnet build + test) (pull_request) Successful in 43s
CI/CD / CI · Admin API (dotnet build) (pull_request) Successful in 44s
CI/CD / CI · Dashboard (tsc) (pull_request) Successful in 1m7s
CI/CD / CI · Admin Web (tsc) (pull_request) Successful in 36s
CI/CD / CI · Website (tsc) (pull_request) Successful in 45s
CI/CD / CI · Koja (tsc) (pull_request) Successful in 51s
CI/CD / Deploy · all services (pull_request) Has been skipped
CI/CD / CI · API (dotnet build + test) (pull_request) Successful in 43s
CI/CD / CI · Admin API (dotnet build) (pull_request) Successful in 44s
CI/CD / CI · Dashboard (tsc) (pull_request) Successful in 1m7s
CI/CD / CI · Admin Web (tsc) (pull_request) Successful in 36s
CI/CD / CI · Website (tsc) (pull_request) Successful in 45s
CI/CD / CI · Koja (tsc) (pull_request) Successful in 51s
CI/CD / Deploy · all services (pull_request) Has been skipped
The test project no longer compiled: recent feature commits changed interfaces and DTOs without updating the test doubles/call sites, so the whole suite (and therefore CI) was failing to build. - NoOpInventoryService: add IInventoryService.GetPurchasesSummaryAsync and the new string? userId param on AdjustAsync. - NoOpLoyaltyService: add ILoyaltyService.RedeemOnOrderAsync. - NoOpOrderNotificationService: add NotifyCallWaiterAsync. - New NoOpAbuseProtectionService and NoOpMediaStorageService test doubles. - QrMenuTests: ReviewService/PublicService gained IAbuseProtectionService + IHttpContextAccessor (and ReviewService an IMediaStorageService); wire the new no-op doubles + a real HttpContextAccessor. - PrintingTests: OrderDto gained a DisplayNumber int between CreatedAt and Items; pass it. - DiscoverFilterTests: add missing `using Xunit;` and the new openNow arg on DiscoverFilterParams.FromQuery. Result: dotnet test -> Passed: 81, Failed: 0. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
using Meezi.API.Security;
|
||||
|
||||
namespace Meezi.API.Tests;
|
||||
|
||||
/// <summary>Test double that allows every action and has no captcha configured.</summary>
|
||||
internal sealed class NoOpAbuseProtectionService : IAbuseProtectionService
|
||||
{
|
||||
public bool IsCaptchaConfigured => false;
|
||||
public string? CaptchaSiteKey => null;
|
||||
|
||||
public Task<(bool Allowed, string? ErrorCode, string? Message)> CheckAuthOtpByIpAsync(
|
||||
string clientIp, CancellationToken cancellationToken = default) =>
|
||||
Task.FromResult<(bool, string?, string?)>((true, null, null));
|
||||
|
||||
public Task<(bool Allowed, string? ErrorCode, string? Message)> CheckGuestOrderAsync(
|
||||
string cafeId, string clientIp, CancellationToken cancellationToken = default) =>
|
||||
Task.FromResult<(bool, string?, string?)>((true, null, null));
|
||||
|
||||
public Task<(bool Allowed, string? ErrorCode, string? Message)> CheckPublicWriteByIpAsync(
|
||||
string clientIp, CancellationToken cancellationToken = default) =>
|
||||
Task.FromResult<(bool, string?, string?)>((true, null, null));
|
||||
|
||||
public Task<(bool Ok, string? ErrorCode, string? Message)> VerifyCaptchaAsync(
|
||||
string? captchaToken, CancellationToken cancellationToken = default) =>
|
||||
Task.FromResult<(bool, string?, string?)>((true, null, null));
|
||||
}
|
||||
Reference in New Issue
Block a user