summaryrefslogtreecommitdiff
path: root/internal/server
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-08-15 11:09:03 +0300
committerPaul Buetow <paul@buetow.org>2024-08-15 11:09:03 +0300
commitb7b3a4b5baa6bb8055a1fd0695b261e971cffd4d (patch)
tree6138cacb62544996644f1d58c1a38afe77bbbf4c /internal/server
parent98599f8c592dcf1eb60c598328116b37d88fd1e4 (diff)
Update marks checksum only dirty when there was really something changed in the entry
Diffstat (limited to 'internal/server')
-rw-r--r--internal/server/repository/repository.go2
-rw-r--r--internal/server/repository/repository_test.go35
2 files changed, 19 insertions, 18 deletions
diff --git a/internal/server/repository/repository.go b/internal/server/repository/repository.go
index 4d84f7f..97f7397 100644
--- a/internal/server/repository/repository.go
+++ b/internal/server/repository/repository.go
@@ -201,6 +201,7 @@ func (r Repository) Merge(otherEnt types.Entry) error {
r.entries[otherEnt.ID] = ent
if !ent.Changed {
+ // Hasn't changed, so no need to write anything to file.
return nil
}
@@ -208,6 +209,7 @@ func (r Repository) Merge(otherEnt types.Entry) error {
if err != err {
return err
}
+
return r.fs.WriteFile(r.entryPath(ent), bytes)
}
diff --git a/internal/server/repository/repository_test.go b/internal/server/repository/repository_test.go
index 27840ed..79ea293 100644
--- a/internal/server/repository/repository_test.go
+++ b/internal/server/repository/repository_test.go
@@ -142,8 +142,6 @@ func TestRepositoryMerge(t *testing.T) {
}
}
-// TODO: Finish implementing this test
-// TODO: Also test merging Shared update status'
func TestRepositoryMergeFromPartner(t *testing.T) {
fs1 := make(vfs.MemoryFS)
repo1 := newRepository(server.ServerConfig{DataDir: "./data1"}, fs1)
@@ -199,16 +197,6 @@ func TestRepositoryMergeFromPartner(t *testing.T) {
return nil
}
- // Merge entries from repo2 into repo1
- if err := repo1.mergeFromPartner(context.Background(), "repo2", getPair, getEntry); err != nil {
- t.Error(err)
- }
-
- // Merge entries from repo1 into repo2
- if err := repo2.mergeFromPartner(context.Background(), "repo1", getPair, getEntry); err != nil {
- t.Error(err)
- }
-
// Compare both repos, they should now contain the same entries
compare := func(repo1, repo2 Repository) error {
pairs, err := repo1.List()
@@ -238,12 +226,23 @@ func TestRepositoryMergeFromPartner(t *testing.T) {
return nil
}
- if err := compare(repo1, repo2); err != nil {
- t.Error(err)
- }
- if err := compare(repo2, repo1); err != nil {
- t.Error(err)
- }
+ t.Run("Merge entries from repo2 into repo1", func(t *testing.T) {
+ if err := repo1.mergeFromPartner(context.Background(), "repo2", getPair, getEntry); err != nil {
+ t.Error(err)
+ }
+ if err := compare(repo2, repo1); err != nil {
+ t.Error(err)
+ }
+ })
+
+ t.Run("Merge entries from repo1 into repo2", func(t *testing.T) {
+ if err := repo2.mergeFromPartner(context.Background(), "repo1", getPair, getEntry); err != nil {
+ t.Error(err)
+ }
+ if err := compare(repo1, repo2); err != nil {
+ t.Error(err)
+ }
+ })
}
func makeEntries(t *testing.T) []types.Entry {