NEO-146: use collection spread in EncounterProgressApi
Apply IDE0305 to defeated-target ordering, assert stable sort in API tests, and document sorted defeatedTargetIds in Bruno.pull/187/head
parent
b455ff5ad5
commit
e0877fea7f
|
|
@ -7,6 +7,7 @@ meta {
|
||||||
docs {
|
docs {
|
||||||
NEO-108: fresh player row before engagement — inactive with empty defeatedTargetIds.
|
NEO-108: fresh player row before engagement — inactive with empty defeatedTargetIds.
|
||||||
Pre-request uses combat-targets dev fixture (also clears encounter progress for dev-local-1).
|
Pre-request uses combat-targets dev fixture (also clears encounter progress for dev-local-1).
|
||||||
|
Non-empty defeatedTargetIds are returned in stable sorted order.
|
||||||
}
|
}
|
||||||
|
|
||||||
script:pre-request {
|
script:pre-request {
|
||||||
|
|
|
||||||
|
|
@ -124,6 +124,8 @@ public sealed class EncounterProgressApiTests
|
||||||
PrototypeNpcRegistry.PrototypeNpcRangedId,
|
PrototypeNpcRegistry.PrototypeNpcRangedId,
|
||||||
],
|
],
|
||||||
row.DefeatedTargetIds);
|
row.DefeatedTargetIds);
|
||||||
|
Assert.True(row.DefeatedTargetIds.SequenceEqual(
|
||||||
|
row.DefeatedTargetIds.OrderBy(static id => id, StringComparer.Ordinal)));
|
||||||
Assert.Null(row.CompletedAt);
|
Assert.Null(row.CompletedAt);
|
||||||
Assert.Null(row.RewardGrantSummary);
|
Assert.Null(row.RewardGrantSummary);
|
||||||
var completionStore = factory.Services.GetRequiredService<IEncounterCompletionStore>();
|
var completionStore = factory.Services.GetRequiredService<IEncounterCompletionStore>();
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,7 @@ public static class EncounterProgressApi
|
||||||
{
|
{
|
||||||
var hasProgress = progressStore.TryGetProgress(playerId, encounterId, out var progress);
|
var hasProgress = progressStore.TryGetProgress(playerId, encounterId, out var progress);
|
||||||
var defeatedTargetIds = hasProgress
|
var defeatedTargetIds = hasProgress
|
||||||
? progress.DefeatedNpcInstanceIds.OrderBy(static id => id, StringComparer.Ordinal).ToArray()
|
? [.. progress.DefeatedNpcInstanceIds.OrderBy(static id => id, StringComparer.Ordinal)]
|
||||||
: Array.Empty<string>();
|
: Array.Empty<string>();
|
||||||
|
|
||||||
if (completionStore.IsCompleted(playerId, encounterId))
|
if (completionStore.IsCompleted(playerId, encounterId))
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue