import 'package:apidash/dashbot/features/chat/models/chat_message.dart'; import 'package:apidash/dashbot/features/chat/viewmodel/chat_viewmodel.dart'; import 'package:apidash/dashbot/features/chat/models/chat_state.dart'; import 'package:apidash/dashbot/core/constants/constants.dart'; import 'package:flutter/material.dart'; class SpyChatViewmodel extends ChatViewmodel { SpyChatViewmodel(super.ref); final List<({String text, ChatMessageType type, bool countAsUser})> sendMessageCalls = []; bool clearCalled = false; List _messages = const []; void setMessages(List messages) { _messages = messages; state = state.copyWith(chatSessions: {'global': messages}); } void setState(ChatState newState) { state = newState; } @override List get currentMessages => _messages; @override Future sendMessage({ required String text, ChatMessageType type = ChatMessageType.general, bool countAsUser = true, }) async { sendMessageCalls.add((text: text, type: type, countAsUser: countAsUser)); } @override void clearCurrentChat() { clearCalled = true; } } class RecordingNavigatorObserver extends NavigatorObserver { Route? lastRoute; @override void didPush(Route route, Route? previousRoute) { super.didPush(route, previousRoute); lastRoute = route; } }