diff --git a/packages/docusaurus/src/server/__tests__/configValidation.test.ts b/packages/docusaurus/src/server/__tests__/configValidation.test.ts index 347f75bd6e..a5371a1cde 100644 --- a/packages/docusaurus/src/server/__tests__/configValidation.test.ts +++ b/packages/docusaurus/src/server/__tests__/configValidation.test.ts @@ -1495,6 +1495,24 @@ describe('future', () => { ); }); + it('accepts fn()', () => { + const vcs: Partial = { + initialize: () => null, + }; + expect( + normalizeConfig({ + future: { + experimental_vcs: vcs, + }, + }), + ).toEqual( + vcsContaining({ + ...DEFAULT_VCS_CONFIG, + ...vcs, + }), + ); + }); + it('accepts undefined', () => { const vcs: Partial = { initialize: undefined, @@ -1546,23 +1564,7 @@ describe('future', () => { `); }); - it('rejects fn()', () => { - const vcs: Partial = { - initialize: () => null, - }; - expect(() => - normalizeConfig({ - future: { - experimental_vcs: vcs, - }, - }), - ).toThrowErrorMatchingInlineSnapshot(` - ""future.experimental_vcs.initialize" must have an arity of 1 - " - `); - }); - - it('rejects fn(filePath, anotherArg)', () => { + it('rejects fn(params, anotherArg)', () => { const vcs: Partial = { // @ts-expect-error: invalid initialize: (_params, _anotherArg) => null, @@ -1574,7 +1576,7 @@ describe('future', () => { }, }), ).toThrowErrorMatchingInlineSnapshot(` - ""future.experimental_vcs.initialize" must have an arity of 1 + ""future.experimental_vcs.initialize" must have an arity lesser or equal to 1 " `); }); diff --git a/packages/docusaurus/src/server/configValidation.ts b/packages/docusaurus/src/server/configValidation.ts index 5ae4926b8e..ad732ea043 100644 --- a/packages/docusaurus/src/server/configValidation.ts +++ b/packages/docusaurus/src/server/configValidation.ts @@ -336,7 +336,7 @@ const STORAGE_CONFIG_SCHEMA = Joi.object({ const VCS_CONFIG_SCHEMA = Joi.object({ initialize: Joi.function() - .arity(1) + .maxArity(1) .optional() .default(() => DEFAULT_VCS_CONFIG.initialize), getFileCreationInfo: Joi.function()