import { P2P_MESSAGE_TYPE, P2P_PROP, P2P_SPECIAL_VALUE } from '../../../enum/p2p'; import envConfig from '../../../env/env-config'; import { getNodeProfile } from '../../../env/nodeProfile'; import P2PMessageListing from '../../../pages/p2p/p2pMessageListing.page'; import * as stepVariableMap from '../../../util/stepVariableMap'; const assert = require('assert').strict; export async function checkMessageAtListing(messageType, dataTable) { const rowsHash = dataTable.rowsHash(); const p2pMessageListing = new P2PMessageListing(); if (messageType == P2P_MESSAGE_TYPE.GENERAL) { assert.equal(!!rowsHash[P2P_PROP.SUBJECT], true, 'Subject is required in order to check message at listing'); const subject = stepVariableMap.replaceWithSpecialKeyValue(rowsHash[P2P_PROP.SUBJECT]); logger.debug('P2P_PROP.SUBJECT ', rowsHash[P2P_PROP.SUBJECT], ':', subject); await p2pMessageListing.getListedMessageChildSubject(subject).checkEqualsText(subject); if (rowsHash[P2P_PROP.SENT_DATE]) { const sentDate = stepVariableMap.replaceWithSpecialKeyValue(rowsHash[P2P_PROP.SENT_DATE]); await p2pMessageListing.getListedMessageChildSentDate(subject).checkEqualsText(sentDate); } if (rowsHash[P2P_PROP.SENDER]) { const lastSenderName = getNodeProfile(envConfig.defaultParty[rowsHash[P2P_PROP.SENDER]]).displayName; await p2pMessageListing.getListedMessageChildLastSender(subject).checkContainsText(lastSenderName); } if (rowsHash[P2P_PROP.PENDING_MESSAGE_COUNT]) { const pendingMessageCount = rowsHash[P2P_PROP.PENDING_MESSAGE_COUNT]; await p2pMessageListing.getListedMessageChildPendingMessageCount(subject).checkEqualsText(pendingMessageCount); } if (rowsHash[P2P_PROP.DELIVERED_MESSAGE_COUNT]) { const deliveredMessageCount = rowsHash[P2P_PROP.DELIVERED_MESSAGE_COUNT]; await p2pMessageListing .getListedMessageChildDeliveredMessageCount(subject) .checkEqualsText(deliveredMessageCount); } const attachmentIcon = rowsHash[P2P_PROP.HAVE_ATTACHMENT_ICON]; if (attachmentIcon === P2P_SPECIAL_VALUE.YES) { await p2pMessageListing.getListedMessageChildAttachmentIcon(subject).checkIsExisting(); } else if (attachmentIcon === P2P_SPECIAL_VALUE.NO) { await p2pMessageListing.getListedMessageChildAttachmentIcon(subject).checkIsExisting(true); } const pendingIcon = rowsHash[P2P_PROP.HAVE_PENDING_ICON]; if (pendingIcon === P2P_SPECIAL_VALUE.YES) { await p2pMessageListing.getListedMessageChildPendingIcon(subject).checkIsExisting(); } else if (pendingIcon === P2P_SPECIAL_VALUE.NO) { await p2pMessageListing.getListedMessageChildPendingIcon(subject).checkIsExisting(true); } const deliveredIcon = rowsHash[P2P_PROP.HAVE_DELIVERED_ICON]; if (deliveredIcon === P2P_SPECIAL_VALUE.YES) { await p2pMessageListing.getListedMessageChildDeliveredPendingIcon(subject).checkIsExisting(); } else if (pendingIcon === P2P_SPECIAL_VALUE.NO) { await p2pMessageListing.getListedMessageChildDeliveredPendingIcon(subject).checkIsExisting(true); } } }