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  }