Skip to content

Commit 6107a5d

Browse files
author
Sophia Marie Terry
committed
Fix for legacy custom method noun plurality
1 parent d484866 commit 6107a5d

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

tools/spectral/ipa/__tests__/utils/operationIdGeneration.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ describe('tools/spectral/ipa/utils/operationIdGeneration.js', () => {
2828
expect(generateOperationID('addNode', '/groups/{groupId}/clusters/{clusterName}')).toEqual('addGroupClusterNode');
2929
expect(generateOperationID('get', '/api/atlas/v2/groups/byName/{groupName}')).toEqual('getGroupByName');
3030
expect(generateOperationID('', '/api/atlas/v2/groups/{groupId}/backup/exportBuckets/{exportBucketId}')).toEqual(
31-
'exportGroupBackupBucket'
31+
'exportGroupBackupBuckets'
3232
);
3333
});
3434

tools/spectral/ipa/rulesets/functions/utils/operationIdGeneration.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,10 @@ export function generateOperationID(method, path) {
3030
nouns = nouns.map((noun) => capitalize(noun));
3131

3232
let verb = deriveActionVerb(method);
33+
const camelCaseCustomMethod = method.length > verb.length;
3334

3435
// if custom method name is multiple words, add trailing nouns to the operation ID
35-
if (method.length > verb.length) {
36+
if (camelCaseCustomMethod) {
3637
nouns.push(method.slice(verb.length));
3738
}
3839

@@ -41,10 +42,10 @@ export function generateOperationID(method, path) {
4142
opID += inflection.singularize(nouns[i]);
4243
}
4344

44-
// singularize final noun, dependent on resource identifier
45+
// singularize final noun, dependent on resource identifier - leave custom nouns alone
4546
if (
46-
isPathParam(resourceIdentifier.split('/').pop()) ||
47-
isSingleResourceIdentifier(resourceIdentifier) ||
47+
((isPathParam(resourceIdentifier.split('/').pop()) || isSingleResourceIdentifier(resourceIdentifier)) &&
48+
!camelCaseCustomMethod) ||
4849
verb === 'create'
4950
) {
5051
nouns[nouns.length - 1] = inflection.singularize(nouns[nouns.length - 1]);

0 commit comments

Comments
 (0)