summaryrefslogtreecommitdiff
path: root/internal/cache/status_test.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2022-08-15 12:35:05 +0200
committerLibravatar GitHub <noreply@github.com>2022-08-15 11:35:05 +0100
commitac6ed3d939fe9dad81aadbd04541e905c625ca82 (patch)
tree6116baf25675837dc99f69c49b9fec2ff112ce5c /internal/cache/status_test.go
parent[frontend] Sensitive media spoilers (#752) (diff)
downloadgotosocial-ac6ed3d939fe9dad81aadbd04541e905c625ca82.tar.xz
[chore] Update bun / sqlite versions; update gtsmodels (#754)
* upstep bun and sqlite versions * allow specific columns to be updated in the db * only update necessary columns for user * bit tidier * only update necessary fields of media_attachment * only update relevant instance fields * update tests * update only specific account columns * use bool pointers on gtsmodels includes attachment, status, account, user * update columns more selectively * test all default fields on new account insert * updating remaining bools on gtsmodels * initialize pointer fields when extracting AP emoji * copy bools properly * add copyBoolPtr convenience function + test it * initialize false bool ptrs a bit more neatly
Diffstat (limited to 'internal/cache/status_test.go')
-rw-r--r--internal/cache/status_test.go26
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{})
}