88 lines
4.8 KiB
JavaScript
88 lines
4.8 KiB
JavaScript
|
define(["require", "exports", "react", "react-dom/test-utils", "enzyme", "./Customizations", "./CustomizerContext", "./useCustomizationSettings"], function (require, exports, React, ReactTestUtils, enzyme_1, Customizations_1, CustomizerContext_1, useCustomizationSettings_1) {
|
||
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
describe('useCustomizatioSettings', function () {
|
||
|
var wrapper;
|
||
|
afterEach(function () {
|
||
|
ReactTestUtils.act(function () {
|
||
|
wrapper === null || wrapper === void 0 ? void 0 : wrapper.unmount();
|
||
|
wrapper = 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;
|
||
|
};
|
||
|
wrapper = (0, enzyme_1.mount)(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;
|
||
|
};
|
||
|
wrapper = (0, enzyme_1.mount)(React.createElement(TestComponent, null));
|
||
|
ReactTestUtils.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;
|
||
|
};
|
||
|
wrapper = (0, enzyme_1.mount)(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: {} } };
|
||
|
wrapper = (0, enzyme_1.mount)(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: {} } };
|
||
|
wrapper.setProps({ value: updatedContext });
|
||
|
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 } };
|
||
|
wrapper = (0, enzyme_1.mount)(React.createElement(CustomizerContext_1.CustomizerContext.Provider, { value: newContext },
|
||
|
React.createElement(TestComponent, null)));
|
||
|
ReactTestUtils.act(function () {
|
||
|
Customizations_1.Customizations.applySettings({ a: 'aaa' });
|
||
|
});
|
||
|
expect(settingsStates.length).toBe(1);
|
||
|
expect(settingsStates[0]).toEqual({ a: 'aa' });
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
//# sourceMappingURL=useCustomizationSettings.test.js.map
|