diff options
| author | Paul Buetow <paul@buetow.org> | 2024-08-15 11:09:03 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2024-08-15 11:09:03 +0300 |
| commit | b7b3a4b5baa6bb8055a1fd0695b261e971cffd4d (patch) | |
| tree | 6138cacb62544996644f1d58c1a38afe77bbbf4c /internal/server | |
| parent | 98599f8c592dcf1eb60c598328116b37d88fd1e4 (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.go | 2 | ||||
| -rw-r--r-- | internal/server/repository/repository_test.go | 35 |
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 { |
