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}