@@ -1960,6 +1960,10 @@ void checkInvariants(MessageListView model) {
19601960 check (isSortedWithoutDuplicates (model.messages.map ((m) => m.id).toList ()))
19611961 .isTrue ();
19621962
1963+ check (model).middleMessage
1964+ ..isGreaterOrEqual (0 )
1965+ ..isLessOrEqual (model.messages.length);
1966+
19631967 check (model).contents.length.equals (model.messages.length);
19641968 for (int i = 0 ; i < model.contents.length; i++ ) {
19651969 final poll = model.messages[i].poll;
@@ -2001,6 +2005,12 @@ void checkInvariants(MessageListView model) {
20012005 check (model).middleItem
20022006 ..isGreaterOrEqual (0 )
20032007 ..isLessOrEqual (model.items.length);
2008+ if (model.middleItem == model.items.length) {
2009+ check (model.middleMessage).equals (model.messages.length);
2010+ } else {
2011+ check (model.items[model.middleItem]).isA <MessageListMessageItem >()
2012+ .message.identicalTo (model.messages[model.middleMessage]);
2013+ }
20042014}
20052015
20062016extension MessageListRecipientHeaderItemChecks on Subject <MessageListRecipientHeaderItem > {
@@ -2026,6 +2036,7 @@ extension MessageListViewChecks on Subject<MessageListView> {
20262036 Subject <PerAccountStore > get store => has ((x) => x.store, 'store' );
20272037 Subject <Narrow > get narrow => has ((x) => x.narrow, 'narrow' );
20282038 Subject <List <Message >> get messages => has ((x) => x.messages, 'messages' );
2039+ Subject <int > get middleMessage => has ((x) => x.middleMessage, 'middleMessage' );
20292040 Subject <List <ZulipMessageContent >> get contents => has ((x) => x.contents, 'contents' );
20302041 Subject <List <MessageListItem >> get items => has ((x) => x.items, 'items' );
20312042 Subject <int > get middleItem => has ((x) => x.middleItem, 'middleItem' );
0 commit comments