@@ -99,7 +99,7 @@ update cif.form_change set new_form_data='{
99
99
and form_data_table_name= ' project' ;
100
100
select cif .commit_project_revision (1 );
101
101
102
-
102
+ -- create the amendment that will be "pending"
103
103
select cif .create_project_revision (1 , ' Amendment' ); -- id = 2
104
104
update cif .form_change set new_form_data= ' {
105
105
"projectName": "Correct",
@@ -112,6 +112,7 @@ update cif.form_change set new_form_data='{
112
112
where project_revision_id= 2
113
113
and form_data_table_name= ' project' ;
114
114
115
+ -- create the general revision that will be "committing"
115
116
select cif .create_project_revision (1 , ' General Revision' ); -- id = 3
116
117
update cif .form_change set new_form_data= ' {
117
118
"projectName": "Incorrect",
@@ -267,6 +268,186 @@ select is (
267
268
' The project table should have the updated proejct name, even after the pending amendment is committed'
268
269
);
269
270
271
+ -- Test when committing is creating records of types that already exist in pending
272
+ truncate table cif .project , cif .operator , cif .contact , cif .attachment restart identity cascade;
273
+ insert into cif .operator (legal_name) values (' test operator' );
274
+ insert into cif .contact (given_name, family_name, email) values (' John' , ' Test' , ' foo@abc.com' ), (' Sandy' , ' Olson' , ' bar@abc.com' );
275
+ insert into cif .attachment (description, file_name, file_type, file_size)
276
+ values (' description1' , ' file_name1' , ' file_type1' , 100 ), (' description2' , ' file_name2' , ' file_type1' , 100 );
277
+
278
+ select cif .create_project (1 ); -- id = 1
279
+ update cif .form_change set new_form_data= ' {
280
+ "projectName": "name",
281
+ "summary": "original (incorrect at point of test)",
282
+ "fundingStreamRfpId": 1,
283
+ "projectStatusId": 1,
284
+ "proposalReference": "1235",
285
+ "operatorId": 1
286
+ }' ::jsonb
287
+ where project_revision_id= 1
288
+ and form_data_table_name= ' project' ;
289
+ select cif .commit_project_revision (1 );
290
+
291
+ -- create the amendment that will be "pending"
292
+ select cif .create_project_revision (1 , ' Amendment' ); -- id = 2
293
+ -- Add necessary form changes for tests
294
+ select cif .add_contact_to_revision (2 , 1 , 1 );
295
+ select cif .create_form_change (
296
+ ' create' ,
297
+ ' funding_parameter_EP' ,
298
+ ' cif' ,
299
+ ' funding_parameter' ,
300
+ json_build_object(
301
+ ' projectId' , 1 ,
302
+ ' provinceSharePercentage' , 1
303
+ )::jsonb,
304
+ null ,
305
+ 2
306
+ );
307
+ select cif .create_form_change (
308
+ ' create' ,
309
+ ' project_manager' ,
310
+ ' cif' ,
311
+ ' project_manager' ,
312
+ json_build_object(
313
+ ' projectManagerLabelId' , 1 ,
314
+ ' cifUserId' , 1 ,
315
+ ' projectId' , 1
316
+ )::jsonb,
317
+ null ,
318
+ 2
319
+ );
320
+ select cif .create_form_change (
321
+ ' create' ,
322
+ ' reporting_requirement' ,
323
+ ' cif' ,
324
+ ' reporting_requirement' ,
325
+ json_build_object(
326
+ ' reportType' , ' Quarterly' ,
327
+ ' reportingRequirementIndex' , 1 ,
328
+ ' projectId' , 1
329
+ )::jsonb,
330
+ null ,
331
+ 2
332
+ );
333
+ select cif .create_form_change (
334
+ ' create' ,
335
+ ' milestone' ,
336
+ ' cif' ,
337
+ ' reporting_requirement' ,
338
+ json_build_object(
339
+ ' reportType' , ' General Milestone' ,
340
+ ' reportingRequirementIndex' , 1
341
+ )::jsonb,
342
+ null ,
343
+ 2
344
+ );
345
+ select cif .add_project_attachment_to_revision (2 ,1 );
346
+
347
+ -- create the general revision that will be "committing"
348
+ select cif .create_project_revision (1 , ' General Revision' ); -- id = 3
349
+ -- Add necessary form changes for tests
350
+ select cif .add_contact_to_revision (3 , 1 , 2 );
351
+ select cif .create_form_change (
352
+ ' create' ,
353
+ ' funding_parameter_EP' ,
354
+ ' cif' ,
355
+ ' funding_parameter' ,
356
+ json_build_object(
357
+ ' projectId' , 1 ,
358
+ ' provinceSharePercentage' , 2
359
+ )::jsonb,
360
+ null ,
361
+ 3
362
+ );
363
+ select cif .create_form_change (
364
+ ' create' ,
365
+ ' project_manager' ,
366
+ ' cif' ,
367
+ ' project_manager' ,
368
+ json_build_object(
369
+ ' projectManagerLabelId' , 1 ,
370
+ ' cifUserId' , 1 ,
371
+ ' projectId' , 1
372
+ )::jsonb,
373
+ null ,
374
+ 3
375
+ );
376
+ select cif .create_form_change (
377
+ ' create' ,
378
+ ' project_manager' ,
379
+ ' cif' ,
380
+ ' project_manager' ,
381
+ json_build_object(
382
+ ' projectManagerLabelId' , 2 ,
383
+ ' cifUserId' , 2 ,
384
+ ' projectId' , 1
385
+ )::jsonb,
386
+ null ,
387
+ 3
388
+ );
389
+ select cif .create_form_change (
390
+ ' create' ,
391
+ ' reporting_requirement' ,
392
+ ' cif' ,
393
+ ' reporting_requirement' ,
394
+ json_build_object(
395
+ ' reportType' , ' Quarterly' ,
396
+ ' reportingRequirementIndex' , 1 ,
397
+ ' projectId' , 1
398
+ )::jsonb,
399
+ null ,
400
+ 3
401
+ );
402
+ select cif .create_form_change (
403
+ ' create' ,
404
+ ' reporting_requirement' ,
405
+ ' cif' ,
406
+ ' reporting_requirement' ,
407
+ json_build_object(
408
+ ' reportType' , ' Quarterly' ,
409
+ ' reportingRequirementIndex' , 2 ,
410
+ ' projectId' , 1
411
+ )::jsonb,
412
+ null ,
413
+ 3
414
+ );
415
+ select cif .create_form_change (
416
+ ' create' ,
417
+ ' milestone' ,
418
+ ' cif' ,
419
+ ' reporting_requirement' ,
420
+ json_build_object(
421
+ ' reportType' , ' General Milestone' ,
422
+ ' reportingRequirementIndex' , 1
423
+ )::jsonb,
424
+ null ,
425
+ 3
426
+ );
427
+ select cif .create_form_change (
428
+ ' create' ,
429
+ ' milestone' ,
430
+ ' cif' ,
431
+ ' reporting_requirement' ,
432
+ json_build_object(
433
+ ' reportType' , ' General Milestone' ,
434
+ ' reportingRequirementIndex' , 2
435
+ )::jsonb,
436
+ null ,
437
+ 3
438
+ );
439
+ select cif .add_project_attachment_to_revision (3 ,1 );
440
+ select cif .add_project_attachment_to_revision (3 ,2 );
441
+
442
+ select cif .commit_project_revision (3 );
443
+
444
+ -- emission_intensity
445
+ -- project_contact
446
+ -- project_manager projectManagerLabelId 1 is update and 2 is created in pending
447
+ -- reporting_requirement should be 3 total with 1,2,3 for reportingRequirementIndex
448
+ -- milestone should be 3 total with 1,2,3 for reportingRequirementIndex
449
+ -- attachment
450
+
270
451
select finish();
271
452
272
453
rollback ;
0 commit comments