summaryrefslogtreecommitdiff
path: root/internal/server
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-06-04 22:49:41 +0300
committerPaul Buetow <paul@buetow.org>2024-06-04 22:49:41 +0300
commit0519af0e7c9f916ad5918b7bc2403a6643274cec (patch)
treef3fc511752122a9625dad74e76b1045ac1e64827 /internal/server
parentd97d63d3a4d4d05dd7084645a6f362fc196b1e51 (diff)
add unittest for repository.List
Diffstat (limited to 'internal/server')
-rw-r--r--internal/server/handler/handler.go2
-rw-r--r--internal/server/repository/repository.go13
-rw-r--r--internal/server/repository/repository_test.go20
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 {