webpack/test/hotCases/status/accept/index.js

28 lines
788 B
JavaScript
Raw Normal View History

var value = require("./file");
it("should wait until promises returned by status handlers are fulfilled", (done) => {
var handler = jest.fn(status => {
2021-06-22 08:21:23 +08:00
var test = jest.fn(() => {
expect(module.hot.status()).toBe(status == "dispose" ? "apply" : status);
});
2021-06-22 08:21:23 +08:00
var promise = Promise.resolve().then(test);
promise.test = test;
return promise;
});
module.hot.addStatusHandler(handler);
module.hot.accept("./file", () => {
value = require("./file");
});
NEXT(require("../../update")(done, undefined, () => {
2025-06-20 22:08:04 +08:00
expect(handler.mock.calls).toEqual([['check'], ['prepare'], ['dispose'], ['apply'], ['idle']]);
2021-06-22 08:21:23 +08:00
for (let result of handler.mock.results)
expect(result.value.test).toHaveBeenCalledTimes(1);
expect(module.hot.status()).toBe("idle");
2021-06-22 08:21:23 +08:00
done();
2021-06-22 08:21:23 +08:00
}));
});