@@ -57,7 +57,7 @@ FDv1AdapterSynchronizer::SourceBuilder MakeMockBuilder(
5757 if (out_sm) {
5858 *out_sm = &sm;
5959 }
60- auto source = std::make_unique <MockFDv1Source>(sm);
60+ auto source = std::make_shared <MockFDv1Source>(sm);
6161 if (out_source) {
6262 *out_source = source.get ();
6363 }
@@ -242,6 +242,25 @@ TEST(FDv1AdapterSynchronizerTest, InterruptedStatusProducesInterruptedResult) {
242242 interrupted->error .Kind ());
243243}
244244
245+ TEST (FDv1AdapterSynchronizerTest,
246+ InitializingWithErrorProducesInterruptedResult) {
247+ DataSourceStatusManager* source_manager = nullptr ;
248+ FDv1AdapterSynchronizer adapter (MakeMockBuilder (nullptr , &source_manager));
249+
250+ auto future = adapter.Next (data_model::Selector{});
251+ source_manager->SetState (
252+ DataSourceStatus::DataSourceState::kInterrupted ,
253+ DataSourceStatus::ErrorInfo::ErrorKind::kNetworkError , " boom" );
254+
255+ auto result = future.WaitForResult (1s);
256+ ASSERT_TRUE (result.has_value ());
257+ auto * interrupted =
258+ std::get_if<FDv2SourceResult::Interrupted>(&result->value );
259+ ASSERT_NE (interrupted, nullptr );
260+ EXPECT_EQ (DataSourceStatus::ErrorInfo::ErrorKind::kNetworkError ,
261+ interrupted->error .Kind ());
262+ }
263+
245264TEST (FDv1AdapterSynchronizerTest, OffStatusProducesTerminalErrorResult) {
246265 DataSourceStatusManager* source_manager = nullptr ;
247266 FDv1AdapterSynchronizer adapter (MakeMockBuilder (nullptr , &source_manager));
0 commit comments