From a2001d4db7f19d0023d7c3a76da314571a1a4877 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Tue, 4 Jun 2024 23:08:45 +0300 Subject: add repo merge unit test --- internal/server/repository/repository_test.go | 30 +++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'internal/server') diff --git a/internal/server/repository/repository_test.go b/internal/server/repository/repository_test.go index 3b67c5f..b395241 100644 --- a/internal/server/repository/repository_test.go +++ b/internal/server/repository/repository_test.go @@ -108,6 +108,36 @@ func TestRepositoryHasSameEntry(t *testing.T) { } } +func TestRepositoryMerge(t *testing.T) { + t.Parallel() + + fs := make(vfs.MemoryFS) + repo := newRepository("./data", fs) + entry1, _ := makeAnEntry() + _ = repo.put(entry1) + + entry2, _ := makeAnotherEntry() + // Need to have the same IDs so that the entries will actually be merged + entry2.ID = entry1.ID + entry2.Body = "merged" + entry2.Epoch = 12345 + + _ = repo.Merge(entry2) + pairs, _ := repo.List() + // Ensuring the merge didn't add a new entry + if len(pairs) != 1 { + t.Error("expected exactly one element in the repo but got", pairs) + } + + entryGot, _ := repo.Get(entry1.ID) + if entryGot.Body != "merged" { + t.Error("unexpected body", entryGot.Body) + } + if entryGot.Epoch != 12345 { + t.Error("unexpected epoch", entryGot.Epoch) + } +} + func makeEntries(t *testing.T) []types.Entry { entry1, err := makeAnEntry() if err != nil { -- cgit v1.2.3