mirror of
				https://github.com/photoprism/photoprism.git
				synced 2025-10-31 04:06:43 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package api
 | |
| 
 | |
| import (
 | |
| 	"encoding/json"
 | |
| 	"net/http"
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/photoprism/photoprism/internal/entity"
 | |
| 	"github.com/stretchr/testify/assert"
 | |
| )
 | |
| 
 | |
| func TestLinkAlbum(t *testing.T) {
 | |
| 	t.Run("create share link", func(t *testing.T) {
 | |
| 		app, router, ctx := NewApiTest()
 | |
| 
 | |
| 		var album entity.Album
 | |
| 
 | |
| 		LinkAlbum(router, ctx)
 | |
| 
 | |
| 		result1 := PerformRequestWithBody(app, "POST", "/api/v1/albums/at9lxuqxpogaaba7/link", `{"password": "foobar", "expires": 0, "edit": true}`)
 | |
| 
 | |
| 		assert.Equal(t, http.StatusOK, result1.Code)
 | |
| 
 | |
| 		if err := json.Unmarshal(result1.Body.Bytes(), &album); err != nil {
 | |
| 			t.Fatal(err)
 | |
| 		}
 | |
| 
 | |
| 		if len(album.Links) != 1 {
 | |
| 			t.Fatalf("one link expected: %d, %+v", len(album.Links), album)
 | |
| 		}
 | |
| 
 | |
| 		link := album.Links[0]
 | |
| 
 | |
| 		assert.Equal(t, "foobar", link.LinkPassword)
 | |
| 		assert.Nil(t, link.LinkExpires)
 | |
| 		assert.False(t, link.CanComment)
 | |
| 		assert.True(t, link.CanEdit)
 | |
| 
 | |
| 		result2 := PerformRequestWithBody(app, "POST", "/api/v1/albums/at9lxuqxpogaaba7/link", `{"password": "", "expires": 3600}`)
 | |
| 
 | |
| 		assert.Equal(t, http.StatusOK, result2.Code)
 | |
| 
 | |
| 		// t.Logf("result1: %s", result1.Body.String())
 | |
| 		// t.Logf("result2: %s", result2.Body.String())
 | |
| 
 | |
| 		if err := json.Unmarshal(result2.Body.Bytes(), &album); err != nil {
 | |
| 			t.Fatal(err)
 | |
| 		}
 | |
| 
 | |
| 		if len(album.Links) != 2 {
 | |
| 			t.Fatal("two links expected")
 | |
| 		}
 | |
| 	})
 | |
| }
 | 
