@@ -659,6 +659,106 @@ class MessageComposerViewModel_Tests: StreamChatTestCase {
659
659
XCTAssertFalse ( viewModel. canSendPoll)
660
660
}
661
661
662
+ func test_showCommandsOverlay( ) {
663
+ // Given
664
+ let channelController = makeChannelController ( )
665
+ let messageController = ChatMessageControllerSUI_Mock . mock (
666
+ chatClient: chatClient,
667
+ cid: . unique,
668
+ messageId: . unique
669
+ )
670
+ let viewModel = MessageComposerViewModel (
671
+ channelController: channelController,
672
+ messageController: messageController
673
+ )
674
+
675
+ // When
676
+ let channelConfig = ChannelConfig ( commands: [ . init( ) ] )
677
+ channelController. channel_mock = . mock(
678
+ cid: . unique,
679
+ config: channelConfig
680
+ )
681
+ viewModel. composerCommand = . init( id: " test " , typingSuggestion: . empty, displayInfo: nil )
682
+
683
+ // Then
684
+ XCTAssertTrue ( viewModel. showCommandsOverlay)
685
+ }
686
+
687
+ func test_showCommandsOverlay_whenComposerCommandIsNil_returnsFalse( ) {
688
+ // Given
689
+ let channelController = makeChannelController ( )
690
+ let messageController = ChatMessageControllerSUI_Mock . mock (
691
+ chatClient: chatClient,
692
+ cid: . unique,
693
+ messageId: . unique
694
+ )
695
+ let viewModel = MessageComposerViewModel (
696
+ channelController: channelController,
697
+ messageController: messageController
698
+ )
699
+
700
+ // When
701
+ let channelConfig = ChannelConfig ( commands: [ . init( ) ] )
702
+ channelController. channel_mock = . mock(
703
+ cid: . unique,
704
+ config: channelConfig
705
+ )
706
+ viewModel. composerCommand = nil
707
+
708
+ // Then
709
+ XCTAssertFalse ( viewModel. showCommandsOverlay)
710
+ }
711
+
712
+ func test_showCommandsOverlay_whenCommandsAreDisabled_returnsFalse( ) {
713
+ // Given
714
+ let channelController = makeChannelController ( )
715
+ let messageController = ChatMessageControllerSUI_Mock . mock (
716
+ chatClient: chatClient,
717
+ cid: . unique,
718
+ messageId: . unique
719
+ )
720
+ let viewModel = MessageComposerViewModel (
721
+ channelController: channelController,
722
+ messageController: messageController
723
+ )
724
+
725
+ // When
726
+ let channelConfig = ChannelConfig ( commands: [ ] )
727
+ channelController. channel_mock = . mock(
728
+ cid: . unique,
729
+ config: channelConfig
730
+ )
731
+ viewModel. composerCommand = . init( id: " test " , typingSuggestion: . empty, displayInfo: nil )
732
+
733
+ // Then
734
+ XCTAssertFalse ( viewModel. showCommandsOverlay)
735
+ }
736
+
737
+ func test_showCommandsOverlay_whenCommandsAreDisabledButIsMentions_returnsTrue( ) {
738
+ // Given
739
+ let channelController = makeChannelController ( )
740
+ let messageController = ChatMessageControllerSUI_Mock . mock (
741
+ chatClient: chatClient,
742
+ cid: . unique,
743
+ messageId: . unique
744
+ )
745
+ let viewModel = MessageComposerViewModel (
746
+ channelController: channelController,
747
+ messageController: messageController
748
+ )
749
+
750
+ // When
751
+ let channelConfig = ChannelConfig ( commands: [ ] )
752
+ channelController. channel_mock = . mock(
753
+ cid: . unique,
754
+ config: channelConfig
755
+ )
756
+ viewModel. composerCommand = . init( id: " mentions " , typingSuggestion: . empty, displayInfo: nil )
757
+
758
+ // Then
759
+ XCTAssertTrue ( viewModel. showCommandsOverlay)
760
+ }
761
+
662
762
func test_addedAsset_extraData( ) {
663
763
// Given
664
764
let image = UIImage ( systemName: " person " ) !
0 commit comments