Skip to content

Commit

Permalink
Try fix flaky TriggerClusterRoutingTest
Browse files Browse the repository at this point in the history
  • Loading branch information
vga91 committed Nov 22, 2022
1 parent 006daff commit c412a74
Showing 1 changed file with 17 additions and 16 deletions.
33 changes: 17 additions & 16 deletions core/src/test/java/apoc/trigger/TriggerClusterRoutingTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import apoc.util.TestContainerUtil;
import apoc.util.TestcontainersCausalCluster;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.neo4j.configuration.GraphDatabaseSettings;
Expand Down Expand Up @@ -84,26 +85,26 @@ private static void triggerInSysLeaderMemberCommon(String query, String triggerN
continue;
}
Session session = driver.session(SessionConfig.forDatabase(dbName));
session.writeTransaction(tx -> {
if (sysIsLeader(tx)) {
tx.run(query, Map.of("name", UUID.randomUUID().toString())).consume();
} else {
try {
tx.run(query, Map.of("name", UUID.randomUUID().toString())).consume();
fail("Should fail because of non leader trigger addition");
} catch (Exception e) {
String errorMsg = e.getMessage();
assertTrue("The actual message is: " + errorMsg, errorMsg.contains(triggerNotRoutedError));
}
if (sysIsLeader(session)) {
final String name = UUID.randomUUID().toString();
TestContainerUtil.testCall( session, query,
Map.of("name", name),
row -> Assert.assertEquals(name, row.get("name")) );
} else {
try {
TestContainerUtil.testCall(session, query,
Map.of("name", UUID.randomUUID().toString()),
row -> fail("Should fail because of non leader trigger addition"));
} catch (Exception e) {
String errorMsg = e.getMessage();
assertTrue("The actual message is: " + errorMsg, errorMsg.contains(triggerNotRoutedError));
}
return null;
});
}
}
}

private static boolean sysIsLeader(Transaction tx) {
final String systemRole = tx.run("CALL dbms.cluster.role('system')")
.single().get("role").asString();
private static boolean sysIsLeader(Session session) {
final String systemRole = TestContainerUtil.singleResultFirstColumn(session, "CALL dbms.cluster.role('system')");
return "LEADER".equals(systemRole);
}
}

0 comments on commit c412a74

Please sign in to comment.