You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Test Case 1: embeddedPlacementDeserialization_elementsAndCustomPayloadDefined
Purpose: To test the deserialization of an embedded message placement payload with elements and a custom payload defined.
Steps:
Deserialize the embedded message placement payload.
Extract the embedded message object from the placement.
Verify the correctness of various properties:
Message metadata, including message ID, placement ID, campaign ID, and proof status.
Message elements, including title, body, media URL, default action, buttons, and text.
Custom payload.
Expected Outcomes:
The deserialized placement and message should not be null.
Metadata and element properties should match the expected values.
Custom payload should match the expected data.
describe('EmbeddedManager',()=>{test('embeddedPlacementDeserialization_elementsAndCustomPayloadDefined',()=>{constpayload={}//JSON DataconstjsonArray=payload.placementsif(jsonArray!==null){// GIVEN an embedded message placement payloadconstplacementJson=jsonArray[0];// WHEN you deserialize the embedded message placement payloadconstplacement=IterableEmbeddedPlacement.fromJSONObject(placementJson);constmessage=placement.messages[0];constpayload: any={};payload['someKey']='someValue';// THEN we get appropriate embedded message object and associated placement idexpect(placement).not.toBeNull();expect(placement.placementId).toBe('0');expect(message.metadata?.messageId).toBe('doibjo4590340oidiobnw');expect(message.metadata?.placementId).toBe('mbn8489b7ehycy');expect(message.metadata?.campaignId).toBe(2324);expect(message.metadata?.isProof).toBe(true);expect(message.elements?.title).toBe('Iterable Coffee Shoppe');expect(message.elements?.body).toBe('SAVE 15% OFF NOW');expect(message.elements?.mediaURL).toBe('http://placekitten.com/200/300');expect(message.elements?.defaultAction?.type).toBe('someType');expect(message.elements?.defaultAction?.data).toBe('someData');constbtn=message.elements?.buttons?.length ? message.elements?.buttons[0] : null;expect(btn?.id).toBe('reward-button');expect(btn?.title).toBe('REDEEM MEOW');expect(btn?.action?.type).toBe('openUrl');expect(btn?.action?.data).toBe('https://www.google.com');consttxt=message.elements?.text?.length ? message.elements?.text[0] : null;expect(txt?.id).toBe('body');expect(txt?.text).toBe('CATS RULE!!!');expect(txt?.label).toBe('label');// Assuming your JSON library supports deep equality comparisonexpect(message.payload).toEqual(payload);}});});
Test Case 2: embeddedPlacementDeserialization_noCustomPayloadDefined
Purpose: To test the deserialization of an embedded message placement payload without a custom payload defined.
Steps:
Deserialize the embedded message placement payload.
Extract the embedded message object from the placement.
Verify the correctness of various properties, excluding the custom payload.
Expected Outcomes:
The deserialized placement and message should not be null.
Metadata and element properties should match the expected values.
Custom payload should be null.
describe('EmbeddedManager',()=>{test('embeddedPlacementDeserialization_noCustomPayloadDefined',()=>{constpayload={}//JSON DataconstjsonArray=payload.placements;if(jsonArray!==null){// GIVEN an embedded message placement payloadconstplacementJson=jsonArray[0];// WHEN you deserialize the embedded message placement payloadconstplacement=IterableEmbeddedPlacement.fromJSONObject(placementJson);constmessage=placement.messages[0];// THEN we get appropriate embedded message object and associated placement idexpect(placement).not.toBeNull();expect(placement.placementId).toBe('0');expect(message.metadata?.messageId).toBe('doibjo4590340oidiobnw');expect(message.metadata?.placementId).toBe('mbn8489b7ehycy');expect(message.metadata?.campaignId).toBe(2324);expect(message.metadata?.isProof).toBe(true);expect(message.elements?.title).toBe('Iterable Coffee Shoppe');expect(message.elements?.body).toBe('SAVE 15% OFF NOW');expect(message.elements?.mediaURL).toBe('http://placekitten.com/200/300');expect(message.elements?.defaultAction?.type).toBe('someType');expect(message.elements?.defaultAction?.data).toBe('someData');constbtn=message.elements?.buttons?.length ? message.elements?.buttons[0] : null;expect(btn?.id).toBe('reward-button');expect(btn?.title).toBe('REDEEM MEOW');expect(message.elements?.defaultAction?.type).toBe('someType');expect(message.elements?.defaultAction?.data).toBe('someData');consttxt=message.elements?.text?.length ? message.elements?.text[0] : null;expect(txt?.id).toBe('body');expect(txt?.text).toBe('CATS RULE!!!');expect(txt?.label).toBe('label');expect(message.payload).toBeNull();}});});
Test Case 3: embeddedPlacementDeserialization_noButtonsOrText
Purpose: To test the deserialization of an embedded message placement payload with no buttons or text elements.
Steps:
Deserialize the embedded message placement payload.
Extract the embedded message object from the placement.
Verify the correctness of various properties, including message metadata and elements, excluding buttons and text.
Expected Outcomes:
The deserialized placement and message should not be null.
Metadata and element properties should match the expected values.
Buttons and text should be null.
describe('EmbeddedManager',()=>{test('embeddedPlacementDeserialization_noButtonsOrText',()=>{constpayload={}//JSON DataconstjsonArray=payload.placements;if(jsonArray!==null){// GIVEN an embedded message placement payloadconstplacementJson=jsonArray[0];// WHEN you deserialize the embedded message placement payloadconstplacement=IterableEmbeddedPlacement.fromJSONObject(placementJson);constmessage=placement.messages[0];constpayload: any={};payload['someKey']='someValue';// THEN we get appropriate embedded message object and associated placement idexpect(placement).not.toBeNull();expect(placement.placementId).toBe('0');expect(message.metadata?.messageId).toBe('doibjo4590340oidiobnw');expect(message.metadata?.placementId).toBe('mbn8489b7ehycy');expect(message.metadata?.campaignId).toBe(2324);expect(message.metadata?.isProof).toBe(true);expect(message.elements?.title).toBe('Iterable Coffee Shoppe');expect(message.elements?.body).toBe('SAVE 15% OFF NOW');expect(message.elements?.mediaURL).toBe('http://placekitten.com/200/300');expect(message.elements?.defaultAction?.type).toBe('someType');expect(message.elements?.defaultAction?.data).toBe('someData');expect(message.elements?.buttons).toBeNull();expect(message.elements?.text).toBeNull();// Assuming your JSON library supports deep equality comparisonexpect(message.payload).toEqual(payload);}});});
Test Case 4: embeddedPlacementDeserialization_noElementsOrCustomPayloadDefined
Purpose: To test the deserialization of an embedded message placement payload with no elements or custom payload defined.
Steps:
Deserialize the embedded message placement payload.
Extract the embedded message object from the placement.
Verify the correctness of various properties, excluding elements and custom payload.
Expected Outcomes:
The deserialized placement and message should not be null.
Metadata should match the expected values.
Elements and custom payload should be null.
describe('EmbeddedManager',()=>{test('embeddedPlacementDeserialization_noElementsOrCustomPayloadDefined',()=>{constpayload={}//JSON DataconstjsonArray=payload.placements;if(jsonArray!==null){// GIVEN an embedded message placement payload with optional elementsconstplacementJson=jsonArray[0];// WHEN you deserialize the embedded message placement payloadconstplacement=IterableEmbeddedPlacement.fromJSONObject(placementJson);constmessage=placement.messages[0];// THEN we get appropriate embedded message object and associated placement idexpect(placement).not.toBeNull();expect(placement.placementId).toBe('0');expect(message.metadata?.messageId).toBe('doibjo4590340oidiobnw');expect(message.metadata?.placementId).toBe('mbn8489b7ehycy');expect(message.metadata?.campaignId).toBe(2324);expect(message.metadata?.isProof).toBe(true);expect(message.elements).toBeNull();expect(message.payload).toBeNull();}});});
Test Case 5: embeddedPlacementSerialization_elementsAndCustomPayloadDefined
Purpose: To test the serialization of an embedded message placement object with elements and a custom payload defined.
Steps:
Create an embedded message placement object with elements and a custom payload.
Serialize the placement object to JSON.
Expected Outcomes:
The serialized JSON should match the expected JSON payload.
describe('EmbeddedManager',()=>{test('embeddedPlacementSerialization_elementsAndCustomPayloadDefined',()=>{constembeddedMessageMetadata=newEmbeddedMessageMetadata('doibjo4590340oidiobnw','mbn8489b7ehycy',2324,true);constembeddedMessageDefaultAction=newEmbeddedMessageElementsDefaultAction('someType','someData');constembeddedMessageElementsButtonAction=newEmbeddedMessageElementsButtonAction('openUrl','https://www.google.com');constembeddedMessageButtons=[newEmbeddedMessageElementsButton('reward-button','REDEEM MEOW',embeddedMessageElementsButtonAction)];constembeddedMessageText=[newEmbeddedMessageElementsText('body','CATS RULE!!!','label')];constembeddedMessageElements=newEmbeddedMessageElements('Iterable Coffee Shoppe','SAVE 15% OFF NOW','http://placekitten.com/200/300',embeddedMessageDefaultAction,embeddedMessageButtons,embeddedMessageText);constcustomPayload: any={};customPayload['someKey']='someValue';constembeddedMessage=newIterableEmbeddedMessage(embeddedMessageMetadata,embeddedMessageElements,customPayload);constplacementId='0';constmessages=[embeddedMessage];constembeddedMessagePlacement=newIterableEmbeddedPlacement(placementId,messages);constpayload={};// JSON DataconstjsonArray=payload.placements;if(jsonArray!==null){// GIVEN an embedded message placement payloadconstexpectedPlacementJson=jsonArray[0];// WHEN you serialize the embedded message payloadconstplacementJson=IterableEmbeddedPlacement.toJSONObject(embeddedMessagePlacement);// THEN we get appropriate embedded message objectexpect(placementJson).toEqual(expectedPlacementJson);}});});
Test Case 6: embeddedPlacementSerialization_noButtons_noText
Purpose: To test the serialization of an embedded message placement object with no buttons or text elements.
Steps:
Create an embedded message placement object with no buttons or text.
Serialize the placement object to JSON.
Expected Outcomes:
The serialized JSON should match the expected JSON payload.
describe('EmbeddedManager',()=>{test('embeddedPlacementSerialization_elementsAndCustomPayloadDefined',()=>{constembeddedMessageMetadata=newEmbeddedMessageMetadata('doibjo4590340oidiobnw','mbn8489b7ehycy',2324,true);constembeddedMessageDefaultAction=newEmbeddedMessageElementsDefaultAction('someType','someData');constembeddedMessageElements=newEmbeddedMessageElements('Iterable Coffee Shoppe','SAVE 15% OFF NOW','http://placekitten.com/200/300',embeddedMessageDefaultAction);constcustomPayload: any={};customPayload['someKey']='someValue';constembeddedMessage=newIterableEmbeddedMessage(embeddedMessageMetadata,embeddedMessageElements,customPayload);constplacementId='0';constmessages=[embeddedMessage];constembeddedMessagePlacement=newIterableEmbeddedPlacement(placementId,messages);constpayload={};// JSON DataconstjsonArray=payload.placements[0].embeddedMessages;if(jsonArray!==null){// GIVEN an embedded message placement payloadconstexpectedPlacementJson=jsonArray[0];// WHEN you serialize the embedded message payloadconstplacementJson=IterableEmbeddedPlacement.toJSONObject(embeddedMessagePlacement);// THEN we get the appropriate embedded message objectexpect(placementJson).toEqual(expectedPlacementJson);}});});