diff options
| author | Paul Buetow <paul@buetow.org> | 2024-06-04 23:08:45 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2024-06-04 23:08:45 +0300 |
| commit | a2001d4db7f19d0023d7c3a76da314571a1a4877 (patch) | |
| tree | 3288fbfc61db98e0500a00c3b75c7344e42407a0 /internal/server | |
| parent | 993cf3244830e410d0f14f09702c8ff75c46bbb4 (diff) | |
add repo merge unit test
Diffstat (limited to 'internal/server')
| -rw-r--r-- | internal/server/repository/repository_test.go | 30 |
1 files changed, 30 insertions, 0 deletions
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 { |
