summaryrefslogtreecommitdiff
path: root/internal/server
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-06-04 23:08:45 +0300
committerPaul Buetow <paul@buetow.org>2024-06-04 23:08:45 +0300
commita2001d4db7f19d0023d7c3a76da314571a1a4877 (patch)
tree3288fbfc61db98e0500a00c3b75c7344e42407a0 /internal/server
parent993cf3244830e410d0f14f09702c8ff75c46bbb4 (diff)
add repo merge unit test
Diffstat (limited to 'internal/server')
-rw-r--r--internal/server/repository/repository_test.go30
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 {