diff --git a/lib/imgbundler/imgbundler_test.go b/lib/imgbundler/imgbundler_test.go
index 4625a4f85..49acdb7d3 100644
--- a/lib/imgbundler/imgbundler_test.go
+++ b/lib/imgbundler/imgbundler_test.go
@@ -294,3 +294,83 @@ width="328" height="587" viewBox="-100 -131 328 587">ab
+`, url1, url2)
+
+ ms := &xmain.State{
+ Name: "test",
+
+ Stdin: os.Stdin,
+ Stdout: os.Stdout,
+ Stderr: os.Stderr,
+
+ Env: xos.NewEnv(os.Environ()),
+ }
+ ms.Log = cmdlog.NewTB(ms.Env, t)
+
+ count := 0
+
+ httpClient.Transport = roundTripFunc(func(req *http.Request) *http.Response {
+ count++
+ respRecorder := httptest.NewRecorder()
+ respRecorder.WriteString(`\r\n\r\n`)
+ respRecorder.WriteHeader(200)
+ return respRecorder.Result()
+ })
+
+ // Using a cache, imgs are not refetched on multiple runs
+ ms.Env.Setenv("IMG_CACHE", "1")
+ _, err := BundleRemote(ctx, ms, []byte(sampleSVG))
+ if err != nil {
+ t.Fatal(err)
+ }
+ _, err = BundleRemote(ctx, ms, []byte(sampleSVG))
+ if err != nil {
+ t.Fatal(err)
+ }
+ tassert.Equal(t, 1, count)
+
+ // With cache disabled, it refetches
+ ms.Env.Setenv("IMG_CACHE", "0")
+ count = 0
+ _, err = BundleRemote(ctx, ms, []byte(sampleSVG))
+ if err != nil {
+ t.Fatal(err)
+ }
+ _, err = BundleRemote(ctx, ms, []byte(sampleSVG))
+ if err != nil {
+ t.Fatal(err)
+ }
+ tassert.Equal(t, 2, count)
+}