D2 : exposer DateUpdate sur ResourceDTO pour le filtre incremental

Le client ne pouvait pas savoir qu'une ressource avait change : il ne
recevait que dateCreation. La colonne existait deja sur l'entite, elle
n'etait simplement pas serialisee.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Thomas Fransolet 2026-08-12 17:46:37 +02:00
parent 7a80766d43
commit fa92395d17
3 changed files with 32 additions and 0 deletions

View File

@ -124,6 +124,36 @@ namespace ManagerService.Tests.Controllers
Assert.Equal("New Label", db.Resources.First().Label);
}
// D2 : `dateUpdate` est le seul signal de fraîcheur dont dispose la visite hors
// ligne. S'il cessait d'être exposé, le device garderait indéfiniment ses fichiers
// périmés — sans erreur, sans trace. D'où ces deux tests plutôt qu'une relecture.
[Fact]
public void ToDTO_ExposesDateUpdate()
{
using var db = DbContextFactory.Create();
db.Resources.Add(new Resource { Id = "r1", InstanceId = "inst-test", Label = "Img", Type = ResourceType.Image });
db.SaveChanges();
var dto = db.Resources.First().ToDTO();
Assert.NotEqual(default, dto.dateUpdate);
Assert.Equal(db.Resources.First().DateUpdate, dto.dateUpdate);
}
[Fact]
public void Update_AdvancesDateUpdate()
{
using var db = DbContextFactory.Create();
db.Resources.Add(new Resource { Id = "r1", InstanceId = "inst-test", Label = "Old", Type = ResourceType.Image });
db.SaveChanges();
var before = db.Resources.First().DateUpdate;
var result = BuildController(db).Update(new ResourceDTO { id = "r1", label = "New Label" });
var dto = Assert.IsType<OkObjectResult>(result).Value as ResourceDTO;
Assert.True(dto.dateUpdate > before);
}
[Fact]
public void Update_UnknownResource_Returns404()
{

View File

@ -10,6 +10,7 @@ namespace ManagerService.DTOs
public string label { get; set; }
public string url { get; set; } // firebase url
public DateTime dateCreation { get; set; }
public DateTime dateUpdate { get; set; }
public string instanceId { get; set; }
public long sizeBytes { get; set; }
}

View File

@ -75,6 +75,7 @@ namespace ManagerService.Data
type = Type,
url = Url,
dateCreation = DateCreation,
dateUpdate = DateUpdate,
instanceId = InstanceId,
sizeBytes = SizeBytes
};