import { mount } from 'enzyme'; import React from 'react'; import { ShowPipelineTemplateJsonModal } from './ShowPipelineTemplateJsonModal'; import type { IPipeline, IPipelineTemplateV2 } from '../../../../domain'; import { PipelineTemplateV2Service } from '../../templates/v2/pipelineTemplateV2.service'; describe('', () => { const mockPipeline: Partial = { keepWaitingPipelines: false, lastModifiedBy: 'anonymous', limitConcurrent: true, stages: [{ name: 'Find Image from Cluster', refId: '1', requisiteStageRefIds: [], type: 'findImage' }], }; const mockTemplate: IPipelineTemplateV2 = PipelineTemplateV2Service.createPipelineTemplate( mockPipeline as IPipeline, 'example@example.com', ); it('dismisses modal with close button', () => { const dismissModal = jasmine.createSpy('dismissModal'); const wrapper = mount(); const button = wrapper.find('button').filterWhere((n) => n.text() === 'Close'); button.simulate('click'); expect(dismissModal).toHaveBeenCalled(); }); it('updates template json with user input', () => { const wrapper = mount(); const simulateInputChange = (id: string, value: string) => wrapper.find(id).simulate('change', { target: { value } }); const mockTemplateMetadata = { description: 'mock-template-description', name: 'mock-template-name', owner: 'mock-template-owner', }; simulateInputChange('#template-name', mockTemplateMetadata.name); simulateInputChange('#template-description', mockTemplateMetadata.description); simulateInputChange('#template-owner', mockTemplateMetadata.owner); const templateStr = wrapper.find('JsonEditor').prop('value'); const template = JSON.parse(templateStr as string); expect(template.metadata.name).toEqual(mockTemplateMetadata.name); expect(template.metadata.description).toEqual(mockTemplateMetadata.description); expect(template.metadata.owner).toEqual(mockTemplateMetadata.owner); }); });