@@ -679,6 +679,75 @@ func TestChannel_Pin(t *testing.T) {
679
679
require .NoError (t , err , "query pinned channel" )
680
680
require .Len (t , channels , 1 )
681
681
require .Equal (t , channels [0 ].CID , ch .CID )
682
+
683
+ member , err = ch .Unpin (ctx , users [0 ].ID )
684
+ require .NoError (t , err , "unpin channel" )
685
+ require .Nil (t , member .ChannelMember .PinnedAt )
686
+
687
+ // query for pinned the channel
688
+ queryChannResp , err = c .QueryChannels (ctx , & QueryOption {
689
+ UserID : users [0 ].ID ,
690
+ Filter : map [string ]interface {}{
691
+ "pinned" : false ,
692
+ "cid" : ch .CID ,
693
+ },
694
+ })
695
+
696
+ channels = queryChannResp .Channels
697
+ require .NoError (t , err , "query pinned channel" )
698
+ require .Len (t , channels , 1 )
699
+ require .Equal (t , channels [0 ].CID , ch .CID )
700
+ }
701
+
702
+ func TestChannel_Archive (t * testing.T ) {
703
+ c := initClient (t )
704
+ ctx := context .Background ()
705
+ users := randomUsers (t , c , 5 )
706
+
707
+ members := make ([]string , 0 , len (users ))
708
+ for i := range users {
709
+ members = append (members , users [i ].ID )
710
+ }
711
+ ch := initChannel (t , c , members ... )
712
+
713
+ //pin the channel
714
+ now := time .Now ()
715
+ member , err := ch .Archive (ctx , users [0 ].ID )
716
+ require .NoError (t , err , "archive channel" )
717
+ require .NotNil (t , member .ChannelMember .ArchivedAt )
718
+ require .GreaterOrEqual (t , member .ChannelMember .ArchivedAt .Unix (), now .Unix ())
719
+
720
+ // query for pinned the channel
721
+ queryChannResp , err := c .QueryChannels (ctx , & QueryOption {
722
+ UserID : users [0 ].ID ,
723
+ Filter : map [string ]interface {}{
724
+ "archived" : true ,
725
+ "cid" : ch .CID ,
726
+ },
727
+ })
728
+
729
+ channels := queryChannResp .Channels
730
+ require .NoError (t , err , "query archived channel" )
731
+ require .Len (t , channels , 1 )
732
+ require .Equal (t , channels [0 ].CID , ch .CID )
733
+
734
+ member , err = ch .Unarchive (ctx , users [0 ].ID )
735
+ require .NoError (t , err , "unarchive channel" )
736
+ require .Nil (t , member .ChannelMember .ArchivedAt )
737
+
738
+ // query for pinned the channel
739
+ queryChannResp , err = c .QueryChannels (ctx , & QueryOption {
740
+ UserID : users [0 ].ID ,
741
+ Filter : map [string ]interface {}{
742
+ "archived" : false ,
743
+ "cid" : ch .CID ,
744
+ },
745
+ })
746
+
747
+ channels = queryChannResp .Channels
748
+ require .NoError (t , err , "query archived channel" )
749
+ require .Len (t , channels , 1 )
750
+ require .Equal (t , channels [0 ].CID , ch .CID )
682
751
}
683
752
684
753
func ExampleChannel_Update () {
0 commit comments