diff options
| author | Paul Buetow <paul@buetow.org> | 2024-08-15 10:51:21 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2024-08-15 10:51:21 +0300 |
| commit | 98599f8c592dcf1eb60c598328116b37d88fd1e4 (patch) | |
| tree | e21466b1547e4d73e0ea47168b2a989cd7a4cce1 /internal/types | |
| parent | d45e0038bba79eddc00650b7abd84aa1ba82bb2f (diff) | |
fix test
Diffstat (limited to 'internal/types')
| -rw-r--r-- | internal/types/entry.go | 24 | ||||
| -rw-r--r-- | internal/types/entry_test.go | 18 |
2 files changed, 31 insertions, 11 deletions
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() |
