diff --git a/packages/govuk-frontend/src/govuk/init.jsdom.test.mjs b/packages/govuk-frontend/src/govuk/init.jsdom.test.mjs index 7223f5f942..b7206342f4 100644 --- a/packages/govuk-frontend/src/govuk/init.jsdom.test.mjs +++ b/packages/govuk-frontend/src/govuk/init.jsdom.test.mjs @@ -368,23 +368,17 @@ describe('createAll', () => { expect(result[1].args).toStrictEqual([document.getElementById('b')]) }) - describe('when a component accepts config', () => { - class MockComponentWithConfig extends MockComponent { - static defaults = { - __test: false - } - } - + describe('when a configuration is passed', () => { it('initialises a component, passing the component root and config', () => { const componentRoot = document.createElement('div') componentRoot.setAttribute('data-module', 'mock-component') document.body.appendChild(componentRoot) - const result = createAll(MockComponentWithConfig, { + const result = createAll(MockComponent, { __test: true }) - expect(result).toStrictEqual([expect.any(MockComponentWithConfig)]) + expect(result).toStrictEqual([expect.any(MockComponent)]) expect(result[0].args).toStrictEqual([ componentRoot, @@ -393,46 +387,6 @@ describe('createAll', () => { } ]) }) - - it('initialises a component, passing the component root even when no config is passed', () => { - const componentRoot = document.createElement('div') - componentRoot.setAttribute('data-module', 'mock-component') - document.body.appendChild(componentRoot) - - const result = createAll(MockComponentWithConfig) - - expect(result).toStrictEqual([expect.any(MockComponentWithConfig)]) - - console.log(result[0].args) - - expect(result[0].args).toStrictEqual([componentRoot]) - }) - - it('passes the config to all component objects', () => { - document.body.innerHTML = ` -
- ` - - const config = { - __test: true - } - - const result = createAll(MockComponentWithConfig, config) - - expect(result).toStrictEqual([ - expect.any(MockComponentWithConfig), - expect.any(MockComponentWithConfig) - ]) - - expect(result[0].args).toStrictEqual([ - document.getElementById('a'), - config - ]) - expect(result[1].args).toStrictEqual([ - document.getElementById('b'), - config - ]) - }) }) describe('when a $scope is passed as third parameter', () => { diff --git a/packages/govuk-frontend/src/govuk/init.mjs b/packages/govuk-frontend/src/govuk/init.mjs index 28a20127a5..7dee9f9a6c 100644 --- a/packages/govuk-frontend/src/govuk/init.mjs +++ b/packages/govuk-frontend/src/govuk/init.mjs @@ -133,7 +133,7 @@ function createAll(Component, config, createAllOptions) { try { // Only pass config to components that accept it // eslint-disable-next-line @typescript-eslint/no-unsafe-return - return 'defaults' in Component && typeof config !== 'undefined' + return typeof config !== 'undefined' ? new Component($element, config) : new Component($element) } catch (error) {