@@ -40,6 +40,7 @@ import io.mockk.mockkStatic
4040import io.mockk.slot
4141import io.mockk.unmockkAll
4242import io.mockk.verify
43+ import io.mockk.verifyOrder
4344import org.junit.After
4445import org.junit.Assert.assertEquals
4546import org.junit.Assert.assertTrue
@@ -1859,6 +1860,45 @@ class MapboxCopilotImplTest {
18591860 }
18601861 }
18611862
1863+ @Test
1864+ fun `startRecording as soon as onShouldStartRecording` () {
1865+ val mockedMapboxNavigation = prepareBasicMockks()
1866+ prepareLifecycleOwnerMockk()
1867+ val mockedHistoryRecorder = mockk<MapboxHistoryRecorder >(relaxed = true )
1868+ every {
1869+ mockedMapboxNavigation.retrieveCopilotHistoryRecorder()
1870+ } returns mockedHistoryRecorder
1871+ val userFeedbackCallback = slot<UserFeedbackCallback >()
1872+ every { registerUserFeedbackCallback(capture(userFeedbackCallback)) } just Runs
1873+ val historyRecordingStateChangeObserver = slot<HistoryRecordingStateChangeObserver >()
1874+ every {
1875+ mockedMapboxNavigation.registerHistoryRecordingStateChangeObserver(
1876+ capture(historyRecordingStateChangeObserver)
1877+ )
1878+ } just Runs
1879+ val mapboxCopilot = MapboxCopilotImpl (mockedMapboxNavigation)
1880+ mapboxCopilot.start()
1881+ val searchResults =
1882+ SearchResults (" mapbox" , " https://mapbox.com" , null , null , " ?query=test1" , null )
1883+ mapboxCopilot.push(SearchResultsEvent (searchResults))
1884+ val activeGuidanceHistoryRecordingSessionState =
1885+ mockk<HistoryRecordingSessionState .ActiveGuidance >(relaxed = true )
1886+ historyRecordingStateChangeObserver.captured.onShouldStartRecording(
1887+ activeGuidanceHistoryRecordingSessionState
1888+ )
1889+ val expectedEventJson = """
1890+ {"provider":"mapbox","request":"https://mapbox.com","searchQuery":"?query\u003dtest1"}
1891+ """ .trimIndent()
1892+
1893+ verifyOrder {
1894+ mockedHistoryRecorder.startRecording()
1895+ mockedHistoryRecorder.pushHistory(
1896+ SEARCH_RESULTS_EVENT_NAME ,
1897+ expectedEventJson,
1898+ )
1899+ }
1900+ }
1901+
18621902 @Test
18631903 fun `SearchResultsEvent is pushed when push - ActiveGuidance` () {
18641904 val mockedMapboxNavigation = prepareBasicMockks()
0 commit comments