diff --git a/packages/netlify-cms-lib-util/src/__tests__/backendUtil.spec.js b/packages/netlify-cms-lib-util/src/__tests__/backendUtil.spec.js index 481d215e..0e6b562f 100644 --- a/packages/netlify-cms-lib-util/src/__tests__/backendUtil.spec.js +++ b/packages/netlify-cms-lib-util/src/__tests__/backendUtil.spec.js @@ -1,4 +1,9 @@ -import { parseLinkHeader, getAllResponses, getPathDepth } from '../backendUtil'; +import { + parseLinkHeader, + getAllResponses, + getPathDepth, + filterByPropExtension, +} from '../backendUtil'; import { oneLine } from 'common-tags'; import nock from 'nock'; @@ -79,3 +84,14 @@ describe('getPathDepth', () => { expect(getPathDepth('{{year}}/{{slug}}')).toBe(2); }); }); + +describe('filterByPropExtension', () => { + it('should return filtered array based on extension', () => { + expect( + filterByPropExtension('.html.md', 'path')([{ path: 'file.html.md' }, { path: 'file.json' }]), + ).toEqual([{ path: 'file.html.md' }]); + expect( + filterByPropExtension('html.md', 'path')([{ path: 'file.html.md' }, { path: 'file.json' }]), + ).toEqual([{ path: 'file.html.md' }]); + }); +}); diff --git a/packages/netlify-cms-lib-util/src/backendUtil.ts b/packages/netlify-cms-lib-util/src/backendUtil.ts index cc921117..73d16f11 100644 --- a/packages/netlify-cms-lib-util/src/backendUtil.ts +++ b/packages/netlify-cms-lib-util/src/backendUtil.ts @@ -1,14 +1,15 @@ import { flow, fromPairs, get } from 'lodash'; import { map } from 'lodash/fp'; import { fromJS } from 'immutable'; -import { fileExtension } from './path'; import unsentRequest from './unsentRequest'; import APIError from './APIError'; type Formatter = (res: Response) => Promise; export const filterByPropExtension = (extension: string, propName: string) => (arr: T[]) => - arr.filter(el => fileExtension(get(el, propName)) === extension); + arr.filter(el => + get(el, propName, '').endsWith(extension.startsWith('.') ? extension : `.${extension}`), + ); const catchFormatErrors = (format: string, formatter: Formatter) => (res: Response) => { try {