Skip to content

Commit 6ec783b

Browse files
committed
Make triggers group name configurable
1 parent 0e29bef commit 6ec783b

File tree

7 files changed

+51
-4
lines changed

7 files changed

+51
-4
lines changed

src/cli/commands/markdown.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ export const markdownOptions: Record<keyof CliConfigurableMarkdownConfig, Option
4242
default: markdownDefaults.customObjectsGroupName,
4343
describe: 'The name under which custom objects will be grouped in the Reference Guide',
4444
},
45+
triggersGroupName: {
46+
type: 'string',
47+
default: markdownDefaults.triggersGroupName,
48+
describe: 'The name under which triggers will be grouped in the Reference Guide',
49+
},
4550
namespace: {
4651
type: 'string',
4752
describe: 'The package namespace, if any. If provided, it will be added to the generated files.',

src/core/markdown/__test__/generating-reference-guide.spec.ts

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
import { extendExpect } from './expect-extensions';
22
import { pipe } from 'fp-ts/function';
33
import * as E from 'fp-ts/Either';
4-
import { unparsedApexBundleFromRawString, generateDocs, unparsedObjectBundleFromRawString } from './test-helpers';
4+
import {
5+
unparsedApexBundleFromRawString,
6+
generateDocs,
7+
unparsedObjectBundleFromRawString,
8+
unparsedTriggerBundleFromRawString,
9+
} from './test-helpers';
510
import { ReferenceGuidePageData } from '../../shared/types';
611
import { assertEither } from '../../test-helpers/assert-either';
712
import { CustomObjectXmlBuilder } from '../../test-helpers/test-data-builders/custom-object-xml-builder';
@@ -125,6 +130,22 @@ describe('When generating the Reference Guide', () => {
125130
);
126131
});
127132

133+
it('groups Triggers under the provided group', async () => {
134+
const input = `
135+
trigger TestTrigger on Account (before insert) {}
136+
`;
137+
138+
const result = await generateDocs(
139+
[unparsedTriggerBundleFromRawString({ rawContent: input, filePath: 'src/triggers/TestTrigger.trigger' })],
140+
{ triggersGroupName: 'MyTriggers' },
141+
)();
142+
143+
expect(result).documentationBundleHasLength(1);
144+
assertEither(result, (data) =>
145+
expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('## MyTriggers'),
146+
);
147+
});
148+
128149
it('displays groups in alphabetical order', async () => {
129150
const input1 = `
130151
/**

src/core/markdown/__test__/test-helpers.ts

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
import { UnparsedApexBundle, UnparsedCustomObjectBundle, UnparsedSourceBundle } from '../../shared/types';
1+
import {
2+
UnparsedApexBundle,
3+
UnparsedCustomObjectBundle,
4+
UnparsedSourceBundle,
5+
UnparsedTriggerBundle,
6+
} from '../../shared/types';
27
import { generateDocs as gen, MarkdownGeneratorConfig } from '../generate-docs';
38
import { referenceGuideTemplate } from '../templates/reference-guide';
49

@@ -12,6 +17,19 @@ export function unparsedApexBundleFromRawString(raw: string, rawMetadata?: strin
1217
};
1318
}
1419

20+
export function unparsedTriggerBundleFromRawString(meta: {
21+
rawContent: string;
22+
filePath: string;
23+
name?: string;
24+
}): UnparsedTriggerBundle {
25+
return {
26+
type: 'trigger',
27+
name: meta.name ?? 'TestTrigger',
28+
filePath: meta.filePath,
29+
content: meta.rawContent,
30+
};
31+
}
32+
1533
export function unparsedObjectBundleFromRawString(meta: {
1634
rawContent: string;
1735
filePath: string;
@@ -32,6 +50,7 @@ export function generateDocs(bundles: UnparsedSourceBundle[], config?: Partial<M
3250
customObjectVisibility: ['public'],
3351
defaultGroupName: 'Miscellaneous',
3452
customObjectsGroupName: 'Custom Objects',
53+
triggersGroupName: 'Triggers',
3554
sortAlphabetically: false,
3655
referenceGuideTemplate: referenceGuideTemplate,
3756
linkingStrategy: 'relative',

src/core/markdown/adapters/__tests__/interface-adapter.spec.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ const defaultMarkdownGeneratorConfig: MarkdownGeneratorConfig = {
1515
namespace: '',
1616
defaultGroupName: 'Miscellaneous',
1717
customObjectsGroupName: 'Custom Objects',
18+
triggersGroupName: 'Triggers',
1819
referenceGuideTemplate: '',
1920
sortAlphabetically: false,
2021
linkingStrategy: 'relative',

src/core/shared/types.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ export type CliConfigurableMarkdownConfig = {
2525
namespace?: string;
2626
defaultGroupName: string;
2727
customObjectsGroupName: string;
28+
triggersGroupName: string;
2829
sortAlphabetically: boolean;
2930
includeMetadata: boolean;
3031
linkingStrategy: LinkingStrategy;

src/core/shared/utils.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,7 @@ export function getTypeGroup(
5454
case 'customobject':
5555
return config.customObjectsGroupName;
5656
case 'trigger':
57-
// TODO: Avoid hardcoding this.
58-
return 'Triggers';
57+
return config.triggersGroupName;
5958
default:
6059
return getGroup(type, config);
6160
}

src/defaults.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export const markdownDefaults = {
1313
...markdownAndChangelogDefaults,
1414
defaultGroupName: 'Miscellaneous',
1515
customObjectsGroupName: 'Custom Objects',
16+
triggersGroupName: 'Triggers',
1617
includeMetadata: false,
1718
sortAlphabetically: false,
1819
linkingStrategy: 'relative' as const,

0 commit comments

Comments
 (0)