aboutsummaryrefslogtreecommitdiffstats
path: root/internal/notify/files_test.go
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-15 17:59:35 +0200
committerDanilo M. <danix@danix.xyz>2026-09-15 17:59:35 +0200
commit3b8a0e0f4a5c28394ac578e8559bf57ae82d3fd2 (patch)
treefafa293256cca4615e4725553a391bf8dfdee99b /internal/notify/files_test.go
parenta248608721e813d5e6d19fc79d2505a2a8c2716a (diff)
downloadnotifyd-3b8a0e0f4a5c28394ac578e8559bf57ae82d3fd2.tar.gz
notifyd-3b8a0e0f4a5c28394ac578e8559bf57ae82d3fd2.zip
feat(notify): add the image field and its cleanup
Popup gains image, and the store calls an injected removeImage when an entry is dismissed, evicted, replaced or expired, so a daemon-written PNG does not outlive its balloon. The service decides what is daemon-owned; the store only names the path. NewStore now takes the callback as a third parameter, so the service wires its removeImage in (unlinking only under ImagesDir) and the existing call sites pass nil.
Diffstat (limited to 'internal/notify/files_test.go')
-rw-r--r--internal/notify/files_test.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/internal/notify/files_test.go b/internal/notify/files_test.go
index b17a4f6..606b131 100644
--- a/internal/notify/files_test.go
+++ b/internal/notify/files_test.go
@@ -55,3 +55,20 @@ func TestPublishEmptyIsAnEmptyArray(t *testing.T) {
t.Errorf("empty queue encoded as %q, want []", data)
}
}
+
+func TestWriteImage(t *testing.T) {
+ dir := t.TempDir()
+ p, err := WriteImage(dir, 7, []byte("png-bytes"))
+ if err != nil {
+ t.Fatal(err)
+ }
+ if filepath.Base(p) != "7.png" {
+ t.Fatalf("path %q", p)
+ }
+ if b, _ := os.ReadFile(p); string(b) != "png-bytes" {
+ t.Fatalf("contents %q", b)
+ }
+ if got := ImagesDir(dir); got != filepath.Join(dir, "img") {
+ t.Fatalf("ImagesDir %q", got)
+ }
+}