Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import { Matchers, MessageConsumerPact } from '@pact-foundation/pact'
- import type { SetCurrentPagePayload } from 'src/events/types/event-payloads'
- import { DFEventTarget, EventTypes } from '../exposed/DynamicForms'
- import {
- PACT_DIR,
- PACT_UI_CONSUMER,
- PACT_UI_PROVIDER,
- TEST_INSTANCE_ID,
- } from './constants'
- const { like } = Matchers
- describe('setCurrentPage Message Consumer Pact', () => {
- let messageConsumer: MessageConsumerPact
- let eventTarget: DFEventTarget
- beforeEach(() => {
- eventTarget = new DFEventTarget(TEST_INSTANCE_ID)
- messageConsumer = new MessageConsumerPact({
- consumer: PACT_UI_CONSUMER,
- provider: PACT_UI_PROVIDER,
- dir: PACT_DIR,
- })
- })
- it('handles setCurrentPage event with valid pageId', () => {
- return messageConsumer
- .expectsToReceive('a setCurrentPage event with valid pageId')
- .withContent({
- pageId: like('page1'),
- })
- .verify((message) => {
- return new Promise<void>((resolve) => {
- const event = new CustomEvent(EventTypes.SetCurrentPage, {
- detail: { payload: message.contents },
- })
- eventTarget.dispatchEvent(event)
- const typedMessage =
- message.contents as unknown as SetCurrentPagePayload
- expect(typedMessage.pageId).toBe('page1')
- resolve()
- })
- })
- })
- it('handles setCurrentPage event with null pageId', () => {
- return messageConsumer
- .expectsToReceive('a setCurrentPage event with null pageId')
- .withContent({
- pageId: null,
- })
- .verify((message) => {
- return new Promise<void>((resolve) => {
- const event = new CustomEvent(EventTypes.SetCurrentPage, {
- detail: { payload: message.contents },
- })
- eventTarget.dispatchEvent(event)
- const typedMessage =
- message.contents as unknown as SetCurrentPagePayload
- expect(typedMessage.pageId).toBeNull()
- resolve()
- })
- })
- })
- it('handles setCurrentPage event with empty pageId', () => {
- return messageConsumer
- .expectsToReceive('a setCurrentPage event with empty pageId')
- .withContent({
- pageId: '',
- })
- .verify((message) => {
- return new Promise<void>((resolve) => {
- const event = new CustomEvent(EventTypes.SetCurrentPage, {
- detail: { payload: message.contents },
- })
- eventTarget.dispatchEvent(event)
- const typedMessage =
- message.contents as unknown as SetCurrentPagePayload
- expect(typedMessage.pageId).toBe('')
- resolve()
- })
- })
- })
- })
Advertisement
Add Comment
Please, Sign In to add comment