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:
parent
7a80766d43
commit
fa92395d17
@ -124,6 +124,36 @@ namespace ManagerService.Tests.Controllers
|
|||||||
Assert.Equal("New Label", db.Resources.First().Label);
|
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]
|
[Fact]
|
||||||
public void Update_UnknownResource_Returns404()
|
public void Update_UnknownResource_Returns404()
|
||||||
{
|
{
|
||||||
|
|||||||
@ -10,6 +10,7 @@ namespace ManagerService.DTOs
|
|||||||
public string label { get; set; }
|
public string label { get; set; }
|
||||||
public string url { get; set; } // firebase url
|
public string url { get; set; } // firebase url
|
||||||
public DateTime dateCreation { get; set; }
|
public DateTime dateCreation { get; set; }
|
||||||
|
public DateTime dateUpdate { get; set; }
|
||||||
public string instanceId { get; set; }
|
public string instanceId { get; set; }
|
||||||
public long sizeBytes { get; set; }
|
public long sizeBytes { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@ -75,6 +75,7 @@ namespace ManagerService.Data
|
|||||||
type = Type,
|
type = Type,
|
||||||
url = Url,
|
url = Url,
|
||||||
dateCreation = DateCreation,
|
dateCreation = DateCreation,
|
||||||
|
dateUpdate = DateUpdate,
|
||||||
instanceId = InstanceId,
|
instanceId = InstanceId,
|
||||||
sizeBytes = SizeBytes
|
sizeBytes = SizeBytes
|
||||||
};
|
};
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user