define(["require", "exports", "react", "@testing-library/react", "./Customizations", "./CustomizerContext", "./useCustomizationSettings"], function (require, exports, React, react_1, Customizations_1, CustomizerContext_1, useCustomizationSettings_1) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); describe('useCustomizatioSettings', function () { var component; afterEach(function () { (0, react_1.act)(function () { component === null || component === void 0 ? void 0 : component.unmount(); component = undefined; }); Customizations_1.Customizations.reset(); }); it('get settings from Customizations', function () { Customizations_1.Customizations.applySettings({ a: 'a' }); var settingsStates = []; var TestComponent = function () { var settings = (0, useCustomizationSettings_1.useCustomizationSettings)(['a']); settingsStates.push(settings); return null; }; (0, react_1.act)(function () { component = (0, react_1.render)(React.createElement(TestComponent, null)); }); expect(settingsStates.length).toBe(1); expect(settingsStates[0]).toEqual({ a: 'a' }); }); it('get settings from Customizations when settings have changed', function () { Customizations_1.Customizations.applySettings({ a: 'a' }); var settingsStates = []; var TestComponent = function () { var settings = (0, useCustomizationSettings_1.useCustomizationSettings)(['a']); settingsStates.push(settings); return null; }; (0, react_1.act)(function () { component = (0, react_1.render)(React.createElement(TestComponent, null)); }); (0, react_1.act)(function () { Customizations_1.Customizations.applySettings({ a: 'aa' }); }); expect(settingsStates.length).toBe(2); expect(settingsStates[0]).toEqual({ a: 'a' }); expect(settingsStates[1]).toEqual({ a: 'aa' }); }); it('get settings from Customizations that are not applied', function () { var settingsStates = []; var TestComponent = function () { var settings = (0, useCustomizationSettings_1.useCustomizationSettings)(['a']); settingsStates.push(settings); return null; }; (0, react_1.act)(function () { component = (0, react_1.render)(React.createElement(TestComponent, null)); }); expect(settingsStates.length).toBe(1); expect(settingsStates[0]).toEqual({ a: undefined }); }); it('get settings from CustomizerContext', function () { var settingsStates = []; var TestComponent = function () { var settings = (0, useCustomizationSettings_1.useCustomizationSettings)(['theme']); settingsStates.push(settings); return null; }; var newContext = { customizations: { settings: { theme: { color: 'red' } }, scopedSettings: {} } }; (0, react_1.act)(function () { component = (0, react_1.render)(React.createElement(CustomizerContext_1.CustomizerContext.Provider, { value: newContext }, React.createElement(TestComponent, null))); }); expect(settingsStates.length).toBe(1); expect(settingsStates[0]).toEqual({ theme: { color: 'red' } }); var updatedContext = { customizations: { settings: { theme: { color: 'green' } }, scopedSettings: {} } }; (0, react_1.act)(function () { component.rerender(React.createElement(CustomizerContext_1.CustomizerContext.Provider, { value: updatedContext }, React.createElement(TestComponent, null))); }); expect(settingsStates.length).toBe(2); expect(settingsStates[1]).toEqual({ theme: { color: 'green' } }); }); it('does not re-render if global settings update but within context', function () { Customizations_1.Customizations.applySettings({ a: 'a' }); var settingsStates = []; var TestComponent = function () { var settings = (0, useCustomizationSettings_1.useCustomizationSettings)(['a']); settingsStates.push(settings); return null; }; var newContext = { customizations: { settings: { a: 'aa' }, scopedSettings: {}, inCustomizerContext: true } }; (0, react_1.act)(function () { component = (0, react_1.render)(React.createElement(CustomizerContext_1.CustomizerContext.Provider, { value: newContext }, React.createElement(TestComponent, null))); }); (0, react_1.act)(function () { Customizations_1.Customizations.applySettings({ a: 'aaa' }); }); expect(settingsStates.length).toBe(1); expect(settingsStates[0]).toEqual({ a: 'aa' }); }); }); }); //# sourceMappingURL=useCustomizationSettings.test.js.map