diff options
| author | Paul Buetow <paul@buetow.org> | 2024-06-04 22:49:41 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2024-06-04 22:49:41 +0300 |
| commit | 0519af0e7c9f916ad5918b7bc2403a6643274cec (patch) | |
| tree | f3fc511752122a9625dad74e76b1045ac1e64827 /internal/server | |
| parent | d97d63d3a4d4d05dd7084645a6f362fc196b1e51 (diff) | |
add unittest for repository.List
Diffstat (limited to 'internal/server')
| -rw-r--r-- | internal/server/handler/handler.go | 2 | ||||
| -rw-r--r-- | internal/server/repository/repository.go | 13 | ||||
| -rw-r--r-- | internal/server/repository/repository_test.go | 20 |
3 files changed, 30 insertions, 5 deletions
diff --git a/internal/server/handler/handler.go b/internal/server/handler/handler.go index 8e2b867..0a9e34f 100644 --- a/internal/server/handler/handler.go +++ b/internal/server/handler/handler.go @@ -47,7 +47,7 @@ func (h Handler) List(w http.ResponseWriter, r *http.Request) error { return fmt.Errorf("expexted GET request") } - list, err := repository.Instance(h.conf.DataDir).List() + list, err := repository.Instance(h.conf.DataDir).ListBytes() if err != nil { return err } diff --git a/internal/server/repository/repository.go b/internal/server/repository/repository.go index 02fa818..7db273f 100644 --- a/internal/server/repository/repository.go +++ b/internal/server/repository/repository.go @@ -87,9 +87,10 @@ func (r Repository) load() error { return errors.Join(errs...) } -func (r Repository) List() ([]byte, error) { +func (r Repository) List() ([]EntryPair, error) { + // TODO: Do I need to load every time? Or only on init of the repo? if err := r.load(); err != nil { - return []byte{}, err + return []EntryPair{}, err } var pairs []EntryPair @@ -100,6 +101,14 @@ func (r Repository) List() ([]byte, error) { pairs = append(pairs, EntryPair{entry.ID, entry.Checksum()}) } + return pairs, nil +} + +func (r Repository) ListBytes() ([]byte, error) { + pairs, err := r.List() + if err != nil { + return []byte{}, err + } return json.Marshal(pairs) } diff --git a/internal/server/repository/repository_test.go b/internal/server/repository/repository_test.go index ffe2b0b..13b24c0 100644 --- a/internal/server/repository/repository_test.go +++ b/internal/server/repository/repository_test.go @@ -69,8 +69,24 @@ func TestRepositoryList(t *testing.T) { _ = repo.put(entry) } - list, _ := repo.List() - t.Log(string(list)) + pairs, _ := repo.List() + if len(entries) != len(pairs) { + t.Error("expected as many entries as pairs") + } + + for _, entry := range entries { + var found bool + for _, pair := range pairs { + if entry.ID == pair.ID && entry.Checksum() == pair.Checksum { + found = true + t.Log("entry matches pair", entry, pair) + break + } + } + if !found { + t.Error("could not find entry", entry, "in", pairs) + } + } } func makeEntries(t *testing.T) []types.Entry { |
