fix: sync contact phone privacy disclosure
This commit is contained in:
parent
0e2fcdf9c8
commit
e1a95c7318
19 changed files with 789 additions and 50 deletions
|
|
@ -419,6 +419,7 @@ func (f *fakeDialogReadModelCache) flushCount() int {
|
|||
type fakePrivacyReadModelCache struct {
|
||||
mu sync.Mutex
|
||||
ids []int64
|
||||
warmed []int64
|
||||
flushes int
|
||||
}
|
||||
|
||||
|
|
@ -428,6 +429,13 @@ func (f *fakePrivacyReadModelCache) InvalidateOwners(ids ...int64) {
|
|||
f.ids = append(f.ids, ids...)
|
||||
}
|
||||
|
||||
func (f *fakePrivacyReadModelCache) WarmOwners(_ context.Context, ids ...int64) error {
|
||||
f.mu.Lock()
|
||||
defer f.mu.Unlock()
|
||||
f.warmed = append(f.warmed, ids...)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (f *fakePrivacyReadModelCache) FlushReadModelCache() {
|
||||
f.mu.Lock()
|
||||
defer f.mu.Unlock()
|
||||
|
|
@ -440,6 +448,12 @@ func (f *fakePrivacyReadModelCache) idsSnapshot() []int64 {
|
|||
return append([]int64(nil), f.ids...)
|
||||
}
|
||||
|
||||
func (f *fakePrivacyReadModelCache) warmedSnapshot() []int64 {
|
||||
f.mu.Lock()
|
||||
defer f.mu.Unlock()
|
||||
return append([]int64(nil), f.warmed...)
|
||||
}
|
||||
|
||||
func (f *fakePrivacyReadModelCache) flushCount() int {
|
||||
f.mu.Lock()
|
||||
defer f.mu.Unlock()
|
||||
|
|
@ -509,6 +523,9 @@ func TestReadModelChangeListenerInvalidatesAccountCaches(t *testing.T) {
|
|||
if len(privacy.ids) != 1 || privacy.ids[0] != 21 {
|
||||
t.Fatalf("privacy invalidations = %v, want [21]", privacy.ids)
|
||||
}
|
||||
if warmed := privacy.warmedSnapshot(); len(warmed) != 1 || warmed[0] != 21 {
|
||||
t.Fatalf("privacy warms = %v, want [21]", warmed)
|
||||
}
|
||||
|
||||
listener.handlePayload(`{"model":"dialog_light","owner_user_id":22,"peer_type":"user","peer_id":32,"version":4}`)
|
||||
if len(dialogs.owners) != 1 || dialogs.owners[0] != 22 || dialogs.keys[0] != (domain.Peer{Type: domain.PeerTypeUser, ID: 32}) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue