diff --git a/OpenNest.Data/DrawingSetEditSession.cs b/OpenNest.Data/DrawingSetEditSession.cs index 620e1b07..e3324ba0 100644 --- a/OpenNest.Data/DrawingSetEditSession.cs +++ b/OpenNest.Data/DrawingSetEditSession.cs @@ -56,6 +56,9 @@ public sealed class DrawingSetEditSession public Guid Id { get; } + /// The store the set is read from and saved to; also reads its history. + public IDrawingSetStore Store => _sets; + public string SavedBy { get; } /// The set as last read or saved; null until a new set is first saved. diff --git a/OpenNest.WinForms.Tests/Forms/DrawingSetFormsTests.cs b/OpenNest.WinForms.Tests/Forms/DrawingSetFormsTests.cs index 1bc95d8b..5984d4b9 100644 --- a/OpenNest.WinForms.Tests/Forms/DrawingSetFormsTests.cs +++ b/OpenNest.WinForms.Tests/Forms/DrawingSetFormsTests.cs @@ -66,6 +66,43 @@ public class DrawingSetFormsTests "The new set test did not complete."); } + [Fact] + public void Editor_History_ShowsTheSavedSetsRevisions_AndIsHiddenForANewSet() + { + StaTestThread.Run( + () => + { + var library = new FakeLibrary(); + var a = library.Add("SYN-A", "Synthetic Steel", 0.25); + var sets = new InMemoryDrawingSets(); + var created = Run(sets.CreateAsync(new DrawingSetRecord + { + Id = Guid.NewGuid(), + Name = "Synthetic kit", + Members = new[] { new DrawingSetMember { DrawingId = a.Id, Quantity = 2, Drawing = a } }, + })); + var shown = new List(); + + using (var editor = new EditDrawingSetForm(new DrawingSetEditSession(sets, created, "Synthetic operator"), library, Server)) + { + editor.ShowHistory = shown.Add; + editor.Show(); + var history = Field