Files
starface-outlook-sync-addin/node_modules/@fluentui/utilities/lib-commonjs/customizations/useCustomizationSettings.test.js
T
Stefan Hacker 37ad745546 first commit
2026-04-03 09:38:48 +02:00

104 lines
4.9 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var React = require("react");
var react_1 = require("@testing-library/react");
var Customizations_1 = require("./Customizations");
var CustomizerContext_1 = require("./CustomizerContext");
var useCustomizationSettings_1 = require("./useCustomizationSettings");
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