Outlook_Addin_LLM/node_modules/@fluentui/utilities/lib-commonjs/asAsync.test.js

61 lines
2.5 KiB
JavaScript
Raw Normal View History

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var React = require("react");
var asAsync_1 = require("./asAsync");
var enzyme_1 = require("enzyme");
describe('asAsync', function () {
it('can async load exports', function (done) {
var _resolve = function () { return undefined; };
var _loadCalled = false;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
var loadThingPromise = new Promise(function (resolve) {
_resolve = resolve;
});
var AsyncThing = (0, asAsync_1.asAsync)({
load: function () {
_loadCalled = true;
return loadThingPromise;
},
});
var wrapper = (0, enzyme_1.mount)(React.createElement(AsyncThing, null));
expect(_loadCalled).toBe(true);
expect(wrapper.text()).toBeFalsy();
expect(_resolve).toBeTruthy();
_resolve(function () { return React.createElement("div", null, "thing"); });
process.nextTick(function () {
wrapper.update();
expect(wrapper.text()).toEqual('thing');
_loadCalled = false;
// Test cached case.
(0, enzyme_1.mount)(React.createElement(AsyncThing, null));
expect(_loadCalled).toBe(false);
expect(wrapper.text()).toEqual('thing');
done();
});
});
it('can async load with placeholder', function (done) {
var _resolve = function () { return undefined; };
var _loadCalled = false;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
var loadThingPromise = new Promise(function (resolve) {
_resolve = resolve;
});
var AsyncThing = (0, asAsync_1.asAsync)({
load: function () {
_loadCalled = true;
return loadThingPromise;
},
});
var wrapper = (0, enzyme_1.mount)(React.createElement(AsyncThing, { asyncPlaceholder: function () { return React.createElement("div", null, "placeholder"); } }));
expect(_loadCalled).toBe(true);
expect(wrapper.text()).toEqual('placeholder');
expect(_resolve).toBeTruthy();
_resolve(function () { return React.createElement("div", null, "thing"); });
process.nextTick(function () {
wrapper.update();
expect(wrapper.text()).toEqual('thing');
done();
});
});
});
//# sourceMappingURL=asAsync.test.js.map