diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2019-03-30 11:12:49 +0300 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2019-03-30 12:17:25 +0300 |
commit | 439ab0339d9ac6972caabaa55fa41887ace839cb (patch) | |
tree | d68f5df34683a34e258fe5e49f672ad862a2bb64 /resources/image_test.go | |
parent | b6a60f718e376066456da37e7bb997a7697edc31 (diff) |
resources: Fix image publish ordering issue
Fixes #5730
Diffstat (limited to 'resources/image_test.go')
-rw-r--r-- | resources/image_test.go | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/resources/image_test.go b/resources/image_test.go index fd1eb5410..6639dbb24 100644 --- a/resources/image_test.go +++ b/resources/image_test.go @@ -152,6 +152,50 @@ func TestImageTransformLongFilename(t *testing.T) { assert.Equal("/a/_hu59e56ffff1bc1d8d122b1403d34e039f_90587_c876768085288f41211f768147ba2647.jpg", resized.RelPermalink()) } +// https://github.com/gohugoio/hugo/issues/5730 +func TestImagePermalinkPublishOrder(t *testing.T) { + for _, checkOriginalFirst := range []bool{true, false} { + name := "OriginalFirst" + if !checkOriginalFirst { + name = "ResizedFirst" + } + + t.Run(name, func(t *testing.T) { + + assert := require.New(t) + spec := newTestResourceOsFs(assert) + + check1 := func(img *Image) { + resizedLink := "/a/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_100x50_resize_q75_box.jpg" + assert.Equal(resizedLink, img.RelPermalink()) + assertImageFile(assert, spec.PublishFs, resizedLink, 100, 50) + } + + check2 := func(img *Image) { + assert.Equal("/a/sunset.jpg", img.RelPermalink()) + assertImageFile(assert, spec.PublishFs, "a/sunset.jpg", 900, 562) + } + + orignal := fetchImageForSpec(spec, assert, "sunset.jpg") + assert.NotNil(orignal) + + if checkOriginalFirst { + check2(orignal) + } + + resized, err := orignal.Resize("100x50") + assert.NoError(err) + + check1(resized) + + if !checkOriginalFirst { + check2(orignal) + } + }) + } + +} + func TestImageTransformConcurrent(t *testing.T) { var wg sync.WaitGroup |