Outlook_Addin_LLM/node_modules/@fluentui/utilities/lib/componentAs/composeComponentAs.test.js

42 lines
2.4 KiB
JavaScript

import { __assign, __rest } from "tslib";
import * as React from 'react';
import * as renderer from 'react-test-renderer';
import { composeComponentAs } from './composeComponentAs';
var Base = function (props) {
return React.createElement("div", { "data-value": props.value });
};
var DecoratorA = function (props) {
var DefaultRender = props.defaultRender, exampleProps = __rest(props, ["defaultRender"]);
return React.createElement("div", { "data-a": "a" }, DefaultRender ? React.createElement(DefaultRender, __assign({}, exampleProps)) : null);
};
var DecoratorB = function (props) {
var DefaultRender = props.defaultRender, exampleProps = __rest(props, ["defaultRender"]);
return React.createElement("div", { "data-b": "b" }, DefaultRender ? React.createElement(DefaultRender, __assign({}, exampleProps)) : null);
};
describe('composeComponentAs', function () {
it('passes Base to DecoratorA', function () {
var DecoratorAWithBase = composeComponentAs(DecoratorA, Base);
var component = renderer.create(React.createElement(DecoratorAWithBase, { value: "test" }));
expect(component.toJSON()).toMatchSnapshot();
});
it('passes Base to DecoratorB through DecoratorA', function () {
var DecoratorAAndBWithBase = composeComponentAs(DecoratorA, composeComponentAs(DecoratorB, Base));
var component = renderer.create(React.createElement(DecoratorAAndBWithBase, { value: "test" }));
expect(component.toJSON()).toMatchSnapshot();
});
it('passes Base as defaultRender to DecoratorB through DecoratorA', function () {
var DecoratorAAroundB = composeComponentAs(DecoratorA, DecoratorB);
var component = renderer.create(React.createElement(DecoratorAAroundB, { value: "test", defaultRender: Base }));
expect(component.toJSON()).toMatchSnapshot();
});
it('renders without defaultRender', function () {
var DecoratorAAroundB = composeComponentAs(DecoratorA, DecoratorB);
var component = renderer.create(React.createElement(DecoratorAAroundB, { value: "test" }));
expect(component.toJSON()).toMatchSnapshot();
});
it('avoids recomposing already-composed components', function () {
var DecoratorAAroundB = composeComponentAs(DecoratorA, DecoratorB);
expect(composeComponentAs(DecoratorA, DecoratorB)).toBe(DecoratorAAroundB);
});
});
//# sourceMappingURL=composeComponentAs.test.js.map