@@ -1960,6 +1960,10 @@ void checkInvariants(MessageListView model) {
1960
1960
check (isSortedWithoutDuplicates (model.messages.map ((m) => m.id).toList ()))
1961
1961
.isTrue ();
1962
1962
1963
+ check (model).middleMessage
1964
+ ..isGreaterOrEqual (0 )
1965
+ ..isLessOrEqual (model.messages.length);
1966
+
1963
1967
check (model).contents.length.equals (model.messages.length);
1964
1968
for (int i = 0 ; i < model.contents.length; i++ ) {
1965
1969
final poll = model.messages[i].poll;
@@ -2001,6 +2005,12 @@ void checkInvariants(MessageListView model) {
2001
2005
check (model).middleItem
2002
2006
..isGreaterOrEqual (0 )
2003
2007
..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
+ }
2004
2014
}
2005
2015
2006
2016
extension MessageListRecipientHeaderItemChecks on Subject <MessageListRecipientHeaderItem > {
@@ -2026,6 +2036,7 @@ extension MessageListViewChecks on Subject<MessageListView> {
2026
2036
Subject <PerAccountStore > get store => has ((x) => x.store, 'store' );
2027
2037
Subject <Narrow > get narrow => has ((x) => x.narrow, 'narrow' );
2028
2038
Subject <List <Message >> get messages => has ((x) => x.messages, 'messages' );
2039
+ Subject <int > get middleMessage => has ((x) => x.middleMessage, 'middleMessage' );
2029
2040
Subject <List <ZulipMessageContent >> get contents => has ((x) => x.contents, 'contents' );
2030
2041
Subject <List <MessageListItem >> get items => has ((x) => x.items, 'items' );
2031
2042
Subject <int > get middleItem => has ((x) => x.middleItem, 'middleItem' );
0 commit comments