From 98599f8c592dcf1eb60c598328116b37d88fd1e4 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Thu, 15 Aug 2024 10:51:21 +0300 Subject: fix test --- internal/server/repository/repository_test.go | 11 ++++++----- internal/types/entry.go | 24 +++++++++++++----------- internal/types/entry_test.go | 18 ++++++++++++++++++ 3 files changed, 37 insertions(+), 16 deletions(-) (limited to 'internal') diff --git a/internal/server/repository/repository_test.go b/internal/server/repository/repository_test.go index 2d817ee..27840ed 100644 --- a/internal/server/repository/repository_test.go +++ b/internal/server/repository/repository_test.go @@ -143,6 +143,7 @@ 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) @@ -262,8 +263,8 @@ func makeAnEntry() (types.Entry, error) { { "Body": "Body text here", "Shared": [ - { "Name": "Foo", "Is": true }, - { "Name": "Bar", "Is": false } + { "Name": "Matodon", "Is": true }, + { "Name": "LinkedIn", "Is": false } ] } ` @@ -275,9 +276,9 @@ func makeAnotherEntry() (types.Entry, error) { { "Body": "Another text here", "Shared": [ - { "Name": "Foo", "Is": true }, - { "Name": "Bar", "Is": true }, - { "Name": "Baz", "Is": false } + { "Name": "Mastodon", "Is": true }, + { "Name": "LinkedIn", "Is": true }, + { "Name": "foo.zone", "Is": false } ] } ` diff --git a/internal/types/entry.go b/internal/types/entry.go index 5dec916..117cb83 100644 --- a/internal/types/entry.go +++ b/internal/types/entry.go @@ -20,14 +20,7 @@ func (s Shared) String() string { } func (s Shared) Equals(other Shared) bool { - switch { - case s.Name != other.Name: - return false - case s.Is != other.Is: - return false - default: - return true - } + return s.Name == other.Name && s.Is == other.Is } type Entry struct { @@ -51,32 +44,41 @@ func NewEntry(bytes []byte) (Entry, error) { if err := json.Unmarshal(bytes, &e); err != nil { return e, fmt.Errorf("unable to deserialise payload: %w", err) } + e.initialize() if e.ID == "" { e.ID = fmt.Sprintf("%x", sha256.Sum256([]byte(e.Body))) } + return e, nil } func NewEntryFromCopy(other Entry) (Entry, error) { - var e Entry + e := other e.initialize() - e.ID = other.ID - return e.Update(other) + + e.Shared = make([]Shared, len(other.Shared)) + copy(e.Shared, other.Shared) + + return e, nil } func NewEntryFromTextFile(filePath string) (Entry, error) { var e Entry + data, err := os.ReadFile(filePath) if err != nil { return e, err } + e.Body = string(data) if e.ID == "" { e.ID = fmt.Sprintf("%x", sha256.Sum256([]byte(e.Body))) } + e.initialize() e.Checksum() + return e, nil } diff --git a/internal/types/entry_test.go b/internal/types/entry_test.go index 6b7e289..4f26804 100644 --- a/internal/types/entry_test.go +++ b/internal/types/entry_test.go @@ -37,6 +37,24 @@ func TestEquals(t *testing.T) { t.Log("both entries differ", ent1, ent2) } +func TestNewEntryFromCopy(t *testing.T) { + ent1, _, err := twoDifferentEntries() + if err != nil { + t.Error(err) + } + + ent2, err := NewEntryFromCopy(ent1) + if err != nil { + t.Error(err) + } + + if !ent1.Equals(ent2) { + t.Error("copy of entry ent1 does not equal") + t.Error("original:", ent1) + t.Error("copy: ", ent2) + } +} + func TestUpdate(t *testing.T) { t.Parallel() -- cgit v1.2.3