test('Publish existing NGWP Emergency alert for matterID', async () => {
expect.hasAssertions()
const timeout = ms('2m');
await kafkaClient.runConsumer(
StaticAlertGroupIdEnum.ACTION_ALERT_PUBLISHED_ID,
TopicAlertEnum.ACTION_ALERT_PUBLISHED
);
await kafkaClient.runConsumer(
StaticAlertGroupIdEnum.STATE_ALERT_PUBLISHED_ID,
TopicAlertEnum.STATE_ALERT_PUBLISHED
);
const postResponse = await
apiClient.post(ALERT_PATH.PUBLISH_ALERT, postAlertPublished);
const alertEvent =
postResponse.data;
const publishedDiscoveryMatterID = postResponse.data.matterID;
const actionRecord = await kafkaClient.getRecordInTopic({
matterID: alertEvent.matterID,
topic: TopicAlertEnum.ACTION_ALERT_PUBLISHED,
timeout
});
const stateRecord = await kafkaClient.getRecordInTopic({
matterID: alertEvent.matterID,
topic: TopicAlertEnum.STATE_ALERT_PUBLISHED,
timeout
});
expect(postResponse.status, 'Response status should be 201').toEqual(201);
assertPostPublishedAlert(alertEvent);
assertAlertEventInKafka(actionRecord, EventTypesAlertsEnum.ACTION_ALERT_PUBLISHED);
assertAlertEventInKafka(stateRecord, EventTypesAlertsEnum.STATE_ALERT_PUBLISHED);
const key = RedisKeyPrefixEnum.NGWP_ALERT_LATEST + alertEvent.matterID;
const ifKeyExistInRedis = await redisClient.ifKeyExistsInTimeout(key, ms('10s'));
expect(ifKeyExistInRedis,
Key ${key} should be present in Redis
).toBeTrue();
const objRedis = await redisClient.getObject(key);
assertPublishedAlertInRedis(stateRecord, objRedis, TenantsEnam.SINCLAIR);
const getResponse = await apiClient.get(ALERT_PATH.GET_PUBLISHED_ALERTS_BY_MATTER_ID, alertEvent.matterID);
const publishedAlert =
getResponse.data;
expect(getResponse.status).toEqual(200);
assertGetPublishedAlertByMatterID(publishedAlert, TenantsEnam.SINCLAIR);
const discoveryAlert = await apiClient.get(ALERT_PATH.GET_PUBLISHED_ALERT_DISCOVERY_BY_MATTER_ID,
publishedDiscoveryMatterID);
expect(discoveryAlert.status, 'Response status should be 200').toEqual(200);