diff options
Diffstat (limited to 'internal/cache/status_test.go')
-rw-r--r-- | internal/cache/status_test.go | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/internal/cache/status_test.go b/internal/cache/status_test.go index 882e92be5..8b0621182 100644 --- a/internal/cache/status_test.go +++ b/internal/cache/status_test.go @@ -72,6 +72,32 @@ func (suite *StatusCacheTestSuite) TestStatusCache() { } } +func (suite *StatusCacheTestSuite) TestBoolPointerCopying() { + originalStatus := suite.data["local_account_1_status_1"] + + // mark the status as pinned + cache it + pinned := true + originalStatus.Pinned = &pinned + suite.cache.Put(originalStatus) + + // retrieve it + cachedStatus, ok := suite.cache.GetByID(originalStatus.ID) + if !ok { + suite.FailNow("status wasn't retrievable from cache") + } + + // we should be able to change the original status values + cached + // values independently since they use different pointers + suite.True(*cachedStatus.Pinned) + *originalStatus.Pinned = false + suite.False(*originalStatus.Pinned) + suite.True(*cachedStatus.Pinned) + *originalStatus.Pinned = true + *cachedStatus.Pinned = false + suite.True(*originalStatus.Pinned) + suite.False(*cachedStatus.Pinned) +} + func TestStatusCache(t *testing.T) { suite.Run(t, &StatusCacheTestSuite{}) } |