2021-06-12 06:01:35 +08:00
|
|
|
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-12 06:01:35 +08:00
|
|
|
});
|
2021-06-22 08:21:23 +08:00
|
|
|
|
|
|
|
var promise = Promise.resolve().then(test);
|
|
|
|
promise.test = test;
|
|
|
|
|
|
|
|
return promise;
|
2021-06-12 06:01:35 +08:00
|
|
|
});
|
|
|
|
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);
|
|
|
|
|
2021-06-12 06:01:35 +08:00
|
|
|
expect(module.hot.status()).toBe("idle");
|
2021-06-22 08:21:23 +08:00
|
|
|
|
2021-06-12 06:01:35 +08:00
|
|
|
done();
|
2021-06-22 08:21:23 +08:00
|
|
|
}));
|
2021-06-12 06:01:35 +08:00
|
|
|
});
|