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/types/entry.go | 24 +++++++++++++----------- internal/types/entry_test.go | 18 ++++++++++++++++++ 2 files changed, 31 insertions(+), 11 deletions(-) (limited to 'internal/types') 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