github.com/keybase/client/go@v0.0.0-20241007131713-f10651d043c8/chat/utils/collapses_test.go (about) 1 package utils 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/keybase/client/go/chat/globals" 8 "github.com/keybase/client/go/externalstest" 9 "github.com/keybase/client/go/protocol/chat1" 10 "github.com/keybase/client/go/protocol/gregor1" 11 "github.com/keybase/clockwork" 12 "github.com/stretchr/testify/require" 13 "golang.org/x/net/context" 14 ) 15 16 func TestCollapses(t *testing.T) { 17 tc := externalstest.SetupTest(t, "collapses", 0) 18 defer tc.Cleanup() 19 20 g := globals.NewContext(tc.G, &globals.ChatContext{}) 21 collapses := NewCollapses(g) 22 23 ctx := context.TODO() 24 convID := chat1.ConversationID([]byte{1, 2, 3, 4}) 25 uid := gregor1.UID([]byte{2, 3, 4, 5}) 26 clock := clockwork.NewFakeClock() 27 collapses.clock = clock 28 29 require.NoError(t, collapses.ToggleSingle(ctx, uid, convID, 6, true)) 30 require.True(t, collapses.IsCollapsed(ctx, uid, convID, 6, chat1.MessageType_ATTACHMENT)) 31 require.NoError(t, collapses.ToggleSingle(ctx, uid, convID, 6, false)) 32 require.False(t, collapses.IsCollapsed(ctx, uid, convID, 6, chat1.MessageType_ATTACHMENT)) 33 34 require.NoError(t, collapses.ToggleRange(ctx, uid, convID, 10, true)) 35 clock.Advance(10 * time.Second) 36 require.True(t, collapses.IsCollapsed(ctx, uid, convID, 10, chat1.MessageType_ATTACHMENT)) 37 require.True(t, collapses.IsCollapsed(ctx, uid, convID, 2, chat1.MessageType_UNFURL)) 38 require.False(t, collapses.IsCollapsed(ctx, uid, convID, 11, chat1.MessageType_ATTACHMENT)) 39 require.True(t, collapses.IsCollapsed(ctx, uid, convID, 6, chat1.MessageType_ATTACHMENT)) 40 require.NoError(t, collapses.ToggleSingle(ctx, uid, convID, 6, false)) 41 clock.Advance(10 * time.Second) 42 require.False(t, collapses.IsCollapsed(ctx, uid, convID, 6, chat1.MessageType_ATTACHMENT)) 43 require.NoError(t, collapses.ToggleRange(ctx, uid, convID, 10, false)) 44 clock.Advance(10 * time.Second) 45 require.False(t, collapses.IsCollapsed(ctx, uid, convID, 10, chat1.MessageType_ATTACHMENT)) 46 require.False(t, collapses.IsCollapsed(ctx, uid, convID, 2, chat1.MessageType_ATTACHMENT)) 47 require.False(t, collapses.IsCollapsed(ctx, uid, convID, 6, chat1.MessageType_ATTACHMENT)) 48 }