|
3 | 3 | UnparsedApexBundle, |
4 | 4 | UnparsedCustomObjectBundle, |
5 | 5 | UnparsedSourceBundle, |
| 6 | + UnparsedTriggerBundle, |
6 | 7 | } from '../../shared/types'; |
7 | 8 | import { generateChangeLog } from '../generate-change-log'; |
8 | 9 | import { assertEither } from '../../test-helpers/assert-either'; |
@@ -484,4 +485,118 @@ describe('when generating a changelog', () => { |
484 | 485 | assertEither(result, (data) => expect((data as ChangeLogPageData).frontmatter).toContain('title: Custom Title')); |
485 | 486 | }); |
486 | 487 | }); |
| 488 | + |
| 489 | + describe('that includes new triggers', () => { |
| 490 | + it('should include a section for new triggers', async () => { |
| 491 | + const triggerSource = `trigger TestTrigger on Account (before insert) {}`; |
| 492 | + |
| 493 | + const oldBundle: UnparsedSourceBundle[] = []; |
| 494 | + const newBundle: UnparsedTriggerBundle[] = [ |
| 495 | + { |
| 496 | + type: 'trigger', |
| 497 | + name: 'TestTrigger', |
| 498 | + content: triggerSource, |
| 499 | + filePath: 'TestTrigger.trigger', |
| 500 | + }, |
| 501 | + ]; |
| 502 | + |
| 503 | + const result = await generateChangeLog(oldBundle, newBundle, config)(); |
| 504 | + |
| 505 | + assertEither(result, (data) => expect((data as ChangeLogPageData).content).toContain('## New Triggers')); |
| 506 | + }); |
| 507 | + |
| 508 | + it('should include the new trigger name and object', async () => { |
| 509 | + const triggerSource = `trigger TestTrigger on Account (before insert) {}`; |
| 510 | + |
| 511 | + const oldBundle: UnparsedSourceBundle[] = []; |
| 512 | + const newBundle: UnparsedSourceBundle[] = [ |
| 513 | + { |
| 514 | + type: 'trigger', |
| 515 | + name: 'TestTrigger', |
| 516 | + content: triggerSource, |
| 517 | + filePath: 'TestTrigger.trigger', |
| 518 | + }, |
| 519 | + ]; |
| 520 | + |
| 521 | + const result = await generateChangeLog(oldBundle, newBundle, config)(); |
| 522 | + |
| 523 | + assertEither(result, (data) => { |
| 524 | + const content = (data as ChangeLogPageData).content; |
| 525 | + expect(content).toContain('TestTrigger on Account'); |
| 526 | + }); |
| 527 | + }); |
| 528 | + }); |
| 529 | + |
| 530 | + describe('that includes removed triggers', () => { |
| 531 | + it('should include a section for removed triggers', async () => { |
| 532 | + const triggerSource = `trigger TestTrigger on Account (before insert) {}`; |
| 533 | + |
| 534 | + const oldBundle: UnparsedSourceBundle[] = [ |
| 535 | + { |
| 536 | + type: 'trigger', |
| 537 | + name: 'TestTrigger', |
| 538 | + content: triggerSource, |
| 539 | + filePath: 'TestTrigger.trigger', |
| 540 | + }, |
| 541 | + ]; |
| 542 | + const newBundle: UnparsedSourceBundle[] = []; |
| 543 | + |
| 544 | + const result = await generateChangeLog(oldBundle, newBundle, config)(); |
| 545 | + |
| 546 | + assertEither(result, (data) => expect((data as ChangeLogPageData).content).toContain('## Removed Triggers')); |
| 547 | + }); |
| 548 | + |
| 549 | + it('should include the removed trigger name and object', async () => { |
| 550 | + const triggerSource = `trigger TestTrigger on Account (before insert) {}`; |
| 551 | + |
| 552 | + const oldBundle: UnparsedSourceBundle[] = [ |
| 553 | + { |
| 554 | + type: 'trigger', |
| 555 | + name: 'TestTrigger', |
| 556 | + content: triggerSource, |
| 557 | + filePath: 'TestTrigger.trigger', |
| 558 | + }, |
| 559 | + ]; |
| 560 | + const newBundle: UnparsedSourceBundle[] = []; |
| 561 | + |
| 562 | + const result = await generateChangeLog(oldBundle, newBundle, config)(); |
| 563 | + |
| 564 | + assertEither(result, (data) => { |
| 565 | + const content = (data as ChangeLogPageData).content; |
| 566 | + expect(content).toContain('TestTrigger on Account'); |
| 567 | + }); |
| 568 | + }); |
| 569 | + }); |
| 570 | + |
| 571 | + describe('that includes triggers in both versions', () => { |
| 572 | + it('should not include unchanged triggers in the changelog', async () => { |
| 573 | + const triggerSource = `trigger TestTrigger on Account (before insert) {}`; |
| 574 | + |
| 575 | + const oldBundle: UnparsedSourceBundle[] = [ |
| 576 | + { |
| 577 | + type: 'trigger', |
| 578 | + name: 'TestTrigger', |
| 579 | + content: triggerSource, |
| 580 | + filePath: 'TestTrigger.trigger', |
| 581 | + }, |
| 582 | + ]; |
| 583 | + const newBundle: UnparsedSourceBundle[] = [ |
| 584 | + { |
| 585 | + type: 'trigger', |
| 586 | + name: 'TestTrigger', |
| 587 | + content: triggerSource, |
| 588 | + filePath: 'TestTrigger.trigger', |
| 589 | + }, |
| 590 | + ]; |
| 591 | + |
| 592 | + const result = await generateChangeLog(oldBundle, newBundle, config)(); |
| 593 | + |
| 594 | + assertEither(result, (data) => { |
| 595 | + const content = (data as ChangeLogPageData).content; |
| 596 | + expect(content).not.toContain('New Triggers'); |
| 597 | + expect(content).not.toContain('Removed Triggers'); |
| 598 | + expect(content).not.toContain('TestTrigger'); |
| 599 | + }); |
| 600 | + }); |
| 601 | + }); |
487 | 602 | }); |
0 commit comments