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 | |
| parent | d45e0038bba79eddc00650b7abd84aa1ba82bb2f (diff) | |
fix test
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/server/repository/repository_test.go | 11 | ||||
| -rw-r--r-- | internal/types/entry.go | 24 | ||||
| -rw-r--r-- | internal/types/entry_test.go | 18 |
3 files changed, 37 insertions, 16 deletions
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() |
