github.com/cozy/cozy-stack@v0.0.0-20240603063001-31110fa4cae1/model/vfs/cozy_metadata_test.go (about) 1 package vfs 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/cozy/cozy-stack/pkg/metadata" 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestUpdatedByApp(t *testing.T) { 12 fcm := NewCozyMetadata("alice.cozy.localhost") 13 entry := &metadata.UpdatedByAppEntry{ 14 Slug: "drive", 15 Date: time.Now(), 16 Instance: "alice.cozy.localhost", 17 } 18 fcm.UpdatedByApp(entry) 19 assert.Len(t, fcm.UpdatedByApps, 1) 20 assert.Equal(t, "drive", fcm.UpdatedByApps[0].Slug) 21 assert.Equal(t, "alice.cozy.localhost", fcm.UpdatedByApps[0].Instance) 22 23 entry = &metadata.UpdatedByAppEntry{ 24 Slug: "photo", 25 Date: time.Now(), 26 Instance: "alice.cozy.localhost", 27 } 28 fcm.UpdatedByApp(entry) 29 assert.Len(t, fcm.UpdatedByApps, 2) 30 assert.Equal(t, "photo", fcm.UpdatedByApps[1].Slug) 31 assert.Equal(t, "alice.cozy.localhost", fcm.UpdatedByApps[1].Instance) 32 33 entry = &metadata.UpdatedByAppEntry{ 34 Slug: "drive", 35 Date: time.Now(), 36 Instance: "bob.cozy.localhost", 37 } 38 fcm.UpdatedByApp(entry) 39 assert.Len(t, fcm.UpdatedByApps, 3) 40 assert.Equal(t, "drive", fcm.UpdatedByApps[2].Slug) 41 assert.Equal(t, "bob.cozy.localhost", fcm.UpdatedByApps[2].Instance) 42 43 entry = &metadata.UpdatedByAppEntry{ 44 Slug: "drive", 45 Date: time.Now(), 46 Instance: "alice.cozy.localhost", 47 } 48 fcm.UpdatedByApp(entry) 49 assert.Len(t, fcm.UpdatedByApps, 3) 50 assert.Equal(t, "photo", fcm.UpdatedByApps[0].Slug) 51 assert.Equal(t, "alice.cozy.localhost", fcm.UpdatedByApps[0].Instance) 52 assert.Equal(t, "drive", fcm.UpdatedByApps[1].Slug) 53 assert.Equal(t, "bob.cozy.localhost", fcm.UpdatedByApps[1].Instance) 54 assert.Equal(t, "drive", fcm.UpdatedByApps[2].Slug) 55 assert.Equal(t, "alice.cozy.localhost", fcm.UpdatedByApps[2].Instance) 56 assert.Equal(t, entry.Date, fcm.UpdatedByApps[2].Date) 57 58 entry = &metadata.UpdatedByAppEntry{ 59 Slug: "drive", 60 Date: time.Now(), 61 Instance: "alice.cozy.localhost", 62 } 63 fcm.UpdatedByApp(entry) 64 assert.Len(t, fcm.UpdatedByApps, 3) 65 assert.Equal(t, "photo", fcm.UpdatedByApps[0].Slug) 66 assert.Equal(t, "alice.cozy.localhost", fcm.UpdatedByApps[0].Instance) 67 assert.Equal(t, "drive", fcm.UpdatedByApps[1].Slug) 68 assert.Equal(t, "bob.cozy.localhost", fcm.UpdatedByApps[1].Instance) 69 assert.Equal(t, "drive", fcm.UpdatedByApps[2].Slug) 70 assert.Equal(t, "alice.cozy.localhost", fcm.UpdatedByApps[2].Instance) 71 assert.Equal(t, entry.Date, fcm.UpdatedByApps[2].Date) 72 73 one := *entry 74 two := *entry 75 three := *entry 76 fcm.UpdatedByApps = append(fcm.UpdatedByApps, &one, &two, &three) 77 entry = &metadata.UpdatedByAppEntry{ 78 Slug: "photo", 79 Date: time.Now(), 80 Instance: "alice.cozy.localhost", 81 } 82 fcm.UpdatedByApp(entry) 83 assert.Len(t, fcm.UpdatedByApps, 3) 84 assert.Equal(t, "drive", fcm.UpdatedByApps[0].Slug) 85 assert.Equal(t, "bob.cozy.localhost", fcm.UpdatedByApps[0].Instance) 86 assert.Equal(t, "drive", fcm.UpdatedByApps[1].Slug) 87 assert.Equal(t, "alice.cozy.localhost", fcm.UpdatedByApps[1].Instance) 88 assert.Equal(t, "photo", fcm.UpdatedByApps[2].Slug) 89 assert.Equal(t, "alice.cozy.localhost", fcm.UpdatedByApps[2].Instance) 90 assert.Equal(t, entry.Date, fcm.UpdatedByApps[2].Date) 91 }