import { NodeTestHarness } from '@nodes-testing/node-test-harness';
import nock from 'nock';

import { credentials } from '../credentials';
import { mockFieldsApi } from '../fieldsApiMock';

describe('Test PipedriveV2, deal => duplicate', () => {
	mockFieldsApi('deal');

	nock('https://api.pipedrive.com/api/v2')
		.post('/deals/8/duplicate')
		.reply(200, {
			success: true,
			data: {
				id: 9,
				creator_user_id: 25455458,
				user_id: 25455458,
				person_id: 10,
				org_id: 7,
				stage_id: 6,
				title: 'Test Deal (copy)',
				value: 499.95,
				acv: 499.95,
				mrr: 0,
				arr: 0,
				currency: 'USD',
				add_time: '2026-04-01 22:03:33',
				update_time: null,
				stage_change_time: null,
				active: true,
				deleted: false,
				status: 'open',
				probability: null,
				next_activity_date: null,
				next_activity_time: null,
				next_activity_id: null,
				last_activity_id: null,
				last_activity_date: null,
				lost_reason: null,
				visible_to: '3',
				close_time: null,
				pipeline_id: 2,
				won_time: null,
				first_won_time: null,
				lost_time: null,
				products_count: 5,
				files_count: 0,
				notes_count: 0,
				followers_count: 0,
				email_messages_count: 0,
				activities_count: 0,
				done_activities_count: 0,
				undone_activities_count: 0,
				participants_count: 0,
				expected_close_date: null,
				last_incoming_mail_time: null,
				last_outgoing_mail_time: null,
				label: null,
				local_won_date: null,
				local_lost_date: null,
				local_close_date: null,
				origin: 'API',
				origin_id: null,
				channel: null,
				channel_id: null,
				is_archived: false,
				archive_time: null,
				score: null,
				sequence_enrollment: null,
				source_lead_id: null,
				stage_order_nr: 1,
				person_name: 'John Updated',
				org_name: 'Updated Org LLC',
				next_activity_subject: null,
				next_activity_type: null,
				next_activity_duration: null,
				next_activity_note: null,
				formatted_value: '$499.95',
				weighted_value: 499.95,
				formatted_weighted_value: '$499.95',
				weighted_value_currency: 'USD',
				rotten_time: null,
				acv_currency: 'USD',
				mrr_currency: 'USD',
				arr_currency: 'USD',
				owner_name: 'Kris',
				cc_email: 'added-cauliflower+deal9@pipedrivemail.com',
				f5ed368466cf0477371c6ee076252f49a188848e: null,
				'48233ee3e9d505bbcca8e7e05d9b8df4231021bc': null,
				febf5dbb0f1e95d60876abc4638483291b8ef18b: null,
				org_hidden: false,
				person_hidden: false,
			},
		});

	new NodeTestHarness().setupTests({
		credentials,
		workflowFiles: ['duplicate.workflow.json'],
	});
});
