Run event subscription destination tests randomly. (#16883)

This commit is contained in:
Siddhant 2024-07-02 18:38:06 +05:30 committed by GitHub
parent 028e5dc1e2
commit 3cb6c85194
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 47 additions and 44 deletions

View File

@ -381,9 +381,11 @@ public abstract class EntityResourceTest<T extends EntityInterface, K extends Cr
// Run webhook related tests randomly. This will ensure these tests are not run for every entity // Run webhook related tests randomly. This will ensure these tests are not run for every entity
// evey time junit tests are run to save time. But over the course of development of a release, // evey time junit tests are run to save time. But over the course of development of a release,
// when tests are run enough times, the webhook tests are run for all the entities. // when tests are run enough times, the webhook tests are run for all the entities.
public boolean runWebhookTests = new Random().nextBoolean(); private static final int RUN_WEBHOOK_TEST = 0;
public boolean runSlackTests = new Random().nextBoolean(); private static final int RUN_SLACK_TEST = 1;
public boolean runMSTeamsTests = new Random().nextBoolean(); private static final int RUN_MS_TEAMS_TEST = 2;
public static boolean EVENT_SUBSCRIPTION_TEST_CONTROL_FLAG = true;
private static int selectedTestCategory = new Random().nextInt(3);
protected boolean supportsSearchIndex = false; protected boolean supportsSearchIndex = false;
@ -455,47 +457,50 @@ public abstract class EntityResourceTest<T extends EntityInterface, K extends Cr
new BotResourceTest().setupBots(); new BotResourceTest().setupBots();
new QueryResourceTest().setupQuery(test); new QueryResourceTest().setupQuery(test);
if (runWebhookTests) { if (EVENT_SUBSCRIPTION_TEST_CONTROL_FLAG) {
webhookCallbackResource.clearEvents(); switch (selectedTestCategory) {
EventSubscriptionResourceTest alertResourceTest = new EventSubscriptionResourceTest(); case RUN_WEBHOOK_TEST:
alertResourceTest.startWebhookSubscription(); webhookCallbackResource.clearEvents();
alertResourceTest.startWebhookEntitySubscriptions(entityType); EventSubscriptionResourceTest webhookTest = new EventSubscriptionResourceTest();
} webhookTest.startWebhookSubscription();
webhookTest.startWebhookEntitySubscriptions(entityType);
if (runSlackTests) { break;
EventSubscriptionResourceTest alertResourceTest = new EventSubscriptionResourceTest(); case RUN_SLACK_TEST:
slackCallbackResource.clearEvents(); slackCallbackResource.clearEvents();
alertResourceTest.startSlackSubscription(); EventSubscriptionResourceTest slackTest = new EventSubscriptionResourceTest();
alertResourceTest.startSlackEntitySubscriptions(entityType); slackTest.startSlackSubscription();
} slackTest.startSlackEntitySubscriptions(entityType);
break;
if (runMSTeamsTests) { case RUN_MS_TEAMS_TEST:
EventSubscriptionResourceTest alertResourceTest = new EventSubscriptionResourceTest(); teamsCallbackResource.clearEvents();
teamsCallbackResource.clearEvents(); EventSubscriptionResourceTest msTeamsTest = new EventSubscriptionResourceTest();
alertResourceTest.startMSTeamsSubscription(); msTeamsTest.startMSTeamsSubscription();
alertResourceTest.startMSTeamsEntitySubscription(entityType); msTeamsTest.startMSTeamsEntitySubscription(entityType);
break;
}
} }
} }
@AfterAll @AfterAll
public void afterAllTests() throws Exception { public void afterAllTests() throws Exception {
if (EVENT_SUBSCRIPTION_TEST_CONTROL_FLAG) {
if (runWebhookTests) { switch (selectedTestCategory) {
EventSubscriptionResourceTest alertResourceTest = new EventSubscriptionResourceTest(); case RUN_WEBHOOK_TEST:
alertResourceTest.validateWebhookEvents(); EventSubscriptionResourceTest webhookTest = new EventSubscriptionResourceTest();
alertResourceTest.validateWebhookEntityEvents(entityType); webhookTest.validateWebhookEvents();
} webhookTest.validateWebhookEntityEvents(entityType);
break;
if (runSlackTests) { case RUN_SLACK_TEST:
EventSubscriptionResourceTest alertResourceTest = new EventSubscriptionResourceTest(); EventSubscriptionResourceTest slackTest = new EventSubscriptionResourceTest();
alertResourceTest.validateSlackEvents(); slackTest.validateSlackEvents();
alertResourceTest.validateSlackEntityEvents(entityType); slackTest.validateSlackEntityEvents(entityType);
} break;
case RUN_MS_TEAMS_TEST:
if (runMSTeamsTests) { EventSubscriptionResourceTest msTeamsTest = new EventSubscriptionResourceTest();
EventSubscriptionResourceTest alertResourceTest = new EventSubscriptionResourceTest(); msTeamsTest.validateMSTeamsEvents();
alertResourceTest.validateMSTeamsEvents(); msTeamsTest.validateMSTeamsEntityEvents(entityType);
alertResourceTest.validateMSTeamsEntityEvents(entityType); break;
}
} }
delete_recursiveTest(); delete_recursiveTest();
} }
@ -2967,7 +2972,7 @@ public abstract class EntityResourceTest<T extends EntityInterface, K extends Cr
ChangeDescription expectedChangeDescription, ChangeDescription expectedChangeDescription,
Map<String, String> authHeaders) Map<String, String> authHeaders)
throws IOException { throws IOException {
if (!runWebhookTests && !runSlackTests && !runMSTeamsTests) { if (!EVENT_SUBSCRIPTION_TEST_CONTROL_FLAG) {
return; return;
} }
validateChangeEvents( validateChangeEvents(
@ -3111,7 +3116,7 @@ public abstract class EntityResourceTest<T extends EntityInterface, K extends Cr
EventType expectedEventType, EventType expectedEventType,
Double expectedVersion, Double expectedVersion,
Map<String, String> authHeaders) { Map<String, String> authHeaders) {
if (!runWebhookTests && !runSlackTests && !runMSTeamsTests) { if (!EVENT_SUBSCRIPTION_TEST_CONTROL_FLAG) {
return; return;
} }
String updatedBy = SecurityUtil.getPrincipalName(authHeaders); String updatedBy = SecurityUtil.getPrincipalName(authHeaders);

View File

@ -53,9 +53,7 @@ public class QueryResourceTest extends EntityResourceTest<Query, CreateQuery> {
super( super(
Entity.QUERY, Query.class, QueryResource.QueryList.class, "queries", QueryResource.FIELDS); Entity.QUERY, Query.class, QueryResource.QueryList.class, "queries", QueryResource.FIELDS);
supportsSearchIndex = true; supportsSearchIndex = true;
runWebhookTests = false; EVENT_SUBSCRIPTION_TEST_CONTROL_FLAG = false;
runSlackTests = false;
runMSTeamsTests = false;
} }
@BeforeAll @BeforeAll