feat(import): import consumable item inventory

This commit is contained in:
gamer147
2026-05-29 18:33:11 -04:00
parent 71b3c3e19f
commit d7e5557d61
3 changed files with 55 additions and 0 deletions

View File

@@ -195,4 +195,32 @@ public class AdminControllerTests
Assert.That(stored.Cards.Select(c => c.Card.Id), Is.EquivalentTo(new[] { 10001002L }),
"Full replace: the pre-seeded 10001001 must be gone, only 10001002 present.");
}
[Test]
public async Task ImportViewer_imports_items_and_replaces_existing()
{
using var factory = new SVSimTestFactory();
const ulong steamId = 76_561_198_111_222_336UL;
long viewerId = await factory.SeedViewerAsync(steamId: steamId);
// Registers the ItemEntry master row (70001) and gives an initial owned count to be replaced.
await factory.SeedOwnedItemAsync(viewerId, itemId: 70001, count: 1);
using var client = factory.CreateClient();
var response = await client.PostAsJsonAsync("/admin/import_viewer", new ImportViewerRequest
{
SteamId = steamId,
Items = new List<ImportItem>
{
new() { ItemId = 70001, Count = 5 },
new() { ItemId = 88888, Count = 9 }, // unknown master id -> skipped silently
}
});
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK),
await response.Content.ReadAsStringAsync());
Assert.That(await factory.GetOwnedItemCountAsync(viewerId, 70001), Is.EqualTo(5),
"Full replace: 70001 count updated to 5.");
Assert.That(await factory.GetOwnedItemCountAsync(viewerId, 88888), Is.EqualTo(0),
"Unknown item master id must not be inserted.");
}
}