@@ -70,7 +70,11 @@ public class OpenLineageServiceIntegrationTest {
7070 public static final ZoneId TIMEZONE = ZoneId .of ("America/Los_Angeles" );
7171 public static final String DATASET_NAME = "theDataset" ;
7272 private RunService runService ;
73+
74+ private JobService jobService ;
7375 private OpenLineageDao openLineageDao ;
76+
77+ private JobDao jobDao ;
7478 private DatasetDao datasetDao ;
7579 private DatasetVersionDao datasetVersionDao ;
7680 private ArgumentCaptor <JobInputUpdate > runInputListener ;
@@ -134,7 +138,9 @@ public ExpectedResults(
134138 public void setup (Jdbi jdbi ) throws SQLException {
135139 openLineageDao = jdbi .onDemand (OpenLineageDao .class );
136140 datasetVersionDao = jdbi .onDemand (DatasetVersionDao .class );
141+ jobDao = jdbi .onDemand (JobDao .class );
137142 runService = mock (RunService .class );
143+ jobService = new JobService (jobDao , runService );
138144 runInputListener = ArgumentCaptor .forClass (JobInputUpdate .class );
139145 doNothing ().when (runService ).notify (runInputListener .capture ());
140146 runOutputListener = ArgumentCaptor .forClass (JobOutputUpdate .class );
@@ -146,8 +152,7 @@ public void setup(Jdbi jdbi) throws SQLException {
146152 jdbi .onDemand (NamespaceDao .class )
147153 .upsertNamespaceRow (UUID .randomUUID (), Instant .now (), NAMESPACE , "me" );
148154 JobRow job =
149- jdbi .onDemand (JobDao .class )
150- .upsertJob (
155+ jobDao .upsertJob (
151156 UUID .randomUUID (),
152157 JobType .BATCH ,
153158 Instant .now (),
@@ -382,6 +387,34 @@ public void testDatasetVersionUpdatedOnRunCompletion()
382387 .contains (dsVersion1Id );
383388 }
384389
390+ @ Test
391+ void testJobIsNotHiddenAfterSubsequentOLEvent () throws ExecutionException , InterruptedException {
392+ String name = "aNotHiddenJob" ;
393+
394+ LineageEvent .LineageEventBuilder builder = LineageEvent .builder ()
395+ .eventType ("COMPLETE" )
396+ .job (LineageEvent .Job .builder ().name (name ).namespace (NAMESPACE ).build ())
397+ .eventTime (Instant .now ().atZone (TIMEZONE ))
398+ .inputs (Collections .emptyList ())
399+ .outputs (Collections .emptyList ());
400+
401+ lineageService .createAsync (
402+ builder .run (new LineageEvent .Run (UUID .randomUUID ().toString (), RunFacet .builder ().build ())).build ()
403+ ).get ();
404+
405+ assertThat (jobService .findJobByName (NAMESPACE , name )).isNotEmpty ();
406+
407+ jobService .delete (NAMESPACE , name );
408+
409+ assertThat (jobService .findJobByName (NAMESPACE , name )).isEmpty ();
410+
411+ lineageService .createAsync (
412+ builder .run (new LineageEvent .Run (UUID .randomUUID ().toString (), RunFacet .builder ().build ())).build ()
413+ ).get ();
414+
415+ assertThat (jobService .findJobByName (NAMESPACE , name )).isNotEmpty ();
416+ }
417+
385418 private void checkExists (LineageEvent .Dataset ds ) {
386419 DatasetService datasetService = new DatasetService (openLineageDao , runService );
387420
0 commit comments