filepicker_test.go

 1package filepicker
 2
 3import (
 4	"io/fs"
 5	"testing"
 6	"testing/fstest"
 7
 8	"github.com/stretchr/testify/assert"
 9	"github.com/stretchr/testify/require"
10)
11
12var pngMagicNumberData = []byte("\x89PNG\x0D\x0A\x1A\x0A")
13
14func TestOnPasteMockFSWithValidPath(t *testing.T) {
15	var mockedFSPath string
16	resolveTestFS := func(fsysPath string) fs.FS {
17		mockedFSPath = fsysPath
18		return fstest.MapFS{
19			"image1.png": &fstest.MapFile{
20				Data: pngMagicNumberData,
21			},
22			"image2.png": &fstest.MapFile{
23				Data: []byte("fake png content"),
24			},
25		}
26	}
27
28	// Test with the first file
29	cmd := onPaste(resolveTestFS, "/home/testuser/images/image1.png")
30	msg := cmd()
31
32	assert.Equal(t, "/home/testuser/images", mockedFSPath)
33	filePickedMsg, ok := msg.(FilePickedMsg)
34	require.True(t, ok)
35	require.NotNil(t, filePickedMsg)
36	assert.Equal(t, "image1.png", filePickedMsg.Attachment.FileName)
37	assert.Equal(t, "image/png", filePickedMsg.Attachment.MimeType)
38}