Guest User

ConsumerMBCT

a guest
Jun 20th, 2025
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { Matchers, MessageConsumerPact } from '@pact-foundation/pact'
  2. import type { SetCurrentPagePayload } from 'src/events/types/event-payloads'
  3.  
  4. import { DFEventTarget, EventTypes } from '../exposed/DynamicForms'
  5. import {
  6.   PACT_DIR,
  7.   PACT_UI_CONSUMER,
  8.   PACT_UI_PROVIDER,
  9.   TEST_INSTANCE_ID,
  10. } from './constants'
  11.  
  12. const { like } = Matchers
  13.  
  14. describe('setCurrentPage Message Consumer Pact', () => {
  15.   let messageConsumer: MessageConsumerPact
  16.   let eventTarget: DFEventTarget
  17.  
  18.   beforeEach(() => {
  19.     eventTarget = new DFEventTarget(TEST_INSTANCE_ID)
  20.  
  21.     messageConsumer = new MessageConsumerPact({
  22.       consumer: PACT_UI_CONSUMER,
  23.       provider: PACT_UI_PROVIDER,
  24.       dir: PACT_DIR,
  25.     })
  26.   })
  27.  
  28.   it('handles setCurrentPage event with valid pageId', () => {
  29.     return messageConsumer
  30.       .expectsToReceive('a setCurrentPage event with valid pageId')
  31.       .withContent({
  32.         pageId: like('page1'),
  33.       })
  34.       .verify((message) => {
  35.         return new Promise<void>((resolve) => {
  36.           const event = new CustomEvent(EventTypes.SetCurrentPage, {
  37.             detail: { payload: message.contents },
  38.           })
  39.           eventTarget.dispatchEvent(event)
  40.  
  41.           const typedMessage =
  42.             message.contents as unknown as SetCurrentPagePayload
  43.           expect(typedMessage.pageId).toBe('page1')
  44.           resolve()
  45.         })
  46.       })
  47.   })
  48.  
  49.   it('handles setCurrentPage event with null pageId', () => {
  50.     return messageConsumer
  51.       .expectsToReceive('a setCurrentPage event with null pageId')
  52.       .withContent({
  53.         pageId: null,
  54.       })
  55.       .verify((message) => {
  56.         return new Promise<void>((resolve) => {
  57.           const event = new CustomEvent(EventTypes.SetCurrentPage, {
  58.             detail: { payload: message.contents },
  59.           })
  60.           eventTarget.dispatchEvent(event)
  61.  
  62.           const typedMessage =
  63.             message.contents as unknown as SetCurrentPagePayload
  64.           expect(typedMessage.pageId).toBeNull()
  65.           resolve()
  66.         })
  67.       })
  68.   })
  69.  
  70.   it('handles setCurrentPage event with empty pageId', () => {
  71.     return messageConsumer
  72.       .expectsToReceive('a setCurrentPage event with empty pageId')
  73.       .withContent({
  74.         pageId: '',
  75.       })
  76.       .verify((message) => {
  77.         return new Promise<void>((resolve) => {
  78.           const event = new CustomEvent(EventTypes.SetCurrentPage, {
  79.             detail: { payload: message.contents },
  80.           })
  81.           eventTarget.dispatchEvent(event)
  82.  
  83.           const typedMessage =
  84.             message.contents as unknown as SetCurrentPagePayload
  85.           expect(typedMessage.pageId).toBe('')
  86.           resolve()
  87.         })
  88.       })
  89.   })
  90. })
  91.  
Advertisement
Add Comment
Please, Sign In to add comment