< prev index next >

bots/pr/src/test/java/org/openjdk/skara/bots/pr/CheckTests.java

Print this page
*** 26,11 ***
  import org.openjdk.skara.test.*;
  
  import org.junit.jupiter.api.*;
  
  import java.io.IOException;
! import java.nio.file.Files;
  import java.util.*;
  import java.util.regex.Pattern;
  
  import static org.junit.jupiter.api.Assertions.*;
  import static org.junit.jupiter.api.Assumptions.assumeTrue;
--- 26,11 ---
  import org.openjdk.skara.test.*;
  
  import org.junit.jupiter.api.*;
  
  import java.io.IOException;
! import java.nio.file.*;
  import java.util.*;
  import java.util.regex.Pattern;
  
  import static org.junit.jupiter.api.Assertions.*;
  import static org.junit.jupiter.api.Assumptions.assumeTrue;

*** 731,6 ***
--- 731,53 ---
  
              // The PR should now be ready for review
              assertTrue(pr.getLabels().contains("rfr"));
          }
      }
+ 
+     @Test
+     void issueIssue(TestInfo testInfo) throws IOException {
+         try (var credentials = new HostCredentials(testInfo);
+              var tempFolder = new TemporaryDirectory()) {
+             var author = credentials.getHostedRepository();
+             var reviewer = credentials.getHostedRepository();
+ 
+             var censusBuilder = credentials.getCensusBuilder()
+                                            .addAuthor(author.host().getCurrentUserDetails().id())
+                                            .addReviewer(reviewer.host().getCurrentUserDetails().id());
+             var checkBot = new PullRequestBot(author, censusBuilder.build(), "master", Map.of(), Map.of(),
+                                               Map.of(), Set.of(), Map.of());
+ 
+             // Populate the projects repository
+             var localRepo = CheckableRepository.init(tempFolder.path(), author.getRepositoryType(), Path.of("appendable.txt"),
+                                                      Set.of("issues"));
+             var masterHash = localRepo.resolve("master").orElseThrow();
+             localRepo.push(masterHash, author.getUrl(), "master", true);
+ 
+             // Make a change with a corresponding PR
+             var editHash = CheckableRepository.appendAndCommit(localRepo);
+             localRepo.push(editHash, author.getUrl(), "edit", true);
+             var pr = credentials.createPullRequest(author, "master", "edit", "This is a pull request");
+ 
+             // Check the status
+             TestBotRunner.runPeriodicItems(checkBot);
+ 
+             // Verify that the check failed
+             var checks = pr.getChecks(editHash);
+             assertEquals(1, checks.size());
+             var check = checks.get("jcheck");
+             assertEquals(CheckStatus.FAILURE, check.status());
+ 
+             // Add an issue to the title
+             pr.setTitle("1234: This is a pull request");
+ 
+             // Check the status again
+             TestBotRunner.runPeriodicItems(checkBot);
+ 
+             // The check should now be successful
+             checks = pr.getChecks(editHash);
+             assertEquals(1, checks.size());
+             check = checks.get("jcheck");
+             assertEquals(CheckStatus.SUCCESS, check.status());
+         }
+     }
  }
< prev index next >