Odoo GraphQL Subscription using Node, Express JS for Sample
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

110 lines
4.7 KiB

import { __assign, __awaiter, __generator } from "tslib";
import { WaitForRenderTimeoutError } from "../internal/index.js";
export var toRerender = function (actual, options) {
return __awaiter(this, void 0, void 0, function () {
var _profiler, profiler, hint, pass, e_1;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
_profiler = actual;
profiler = "Profiler" in _profiler ? _profiler.Profiler : _profiler;
hint = this.utils.matcherHint("toRerender", "ProfiledComponent", "");
pass = true;
_a.label = 1;
case 1:
_a.trys.push([1, 3, , 4]);
return [4 /*yield*/, profiler.peekRender(__assign({ timeout: 100 }, options))];
case 2:
_a.sent();
return [3 /*break*/, 4];
case 3:
e_1 = _a.sent();
if (e_1 instanceof WaitForRenderTimeoutError) {
pass = false;
}
else {
throw e_1;
}
return [3 /*break*/, 4];
case 4: return [2 /*return*/, {
pass: pass,
message: function () {
return (hint +
"\n\nExpected component to".concat(pass ? " not" : "", " rerender, ") +
"but it did".concat(pass ? "" : " not", "."));
},
}];
}
});
});
};
/** to be thrown to "break" test execution and fail it */
var failed = {};
export var toRenderExactlyTimes = function (actual, times, optionsPerRender) {
return __awaiter(this, void 0, void 0, function () {
var _profiler, profiler, options, hint, pass, e_2, e_3, e_4;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
_profiler = actual;
profiler = "Profiler" in _profiler ? _profiler.Profiler : _profiler;
options = __assign({ timeout: 100 }, optionsPerRender);
hint = this.utils.matcherHint("toRenderExactlyTimes");
pass = true;
_a.label = 1;
case 1:
_a.trys.push([1, 11, , 12]);
if (profiler.totalRenderCount() > times) {
throw failed;
}
_a.label = 2;
case 2:
_a.trys.push([2, 6, , 7]);
_a.label = 3;
case 3:
if (!(profiler.totalRenderCount() < times)) return [3 /*break*/, 5];
return [4 /*yield*/, profiler.waitForNextRender(options)];
case 4:
_a.sent();
return [3 /*break*/, 3];
case 5: return [3 /*break*/, 7];
case 6:
e_2 = _a.sent();
// timeouts here should just fail the test, rethrow other errors
throw e_2 instanceof WaitForRenderTimeoutError ? failed : e_2;
case 7:
_a.trys.push([7, 9, , 10]);
return [4 /*yield*/, profiler.waitForNextRender(options)];
case 8:
_a.sent();
return [3 /*break*/, 10];
case 9:
e_3 = _a.sent();
// we are expecting a timeout here, so swallow that error, rethrow others
if (!(e_3 instanceof WaitForRenderTimeoutError)) {
throw e_3;
}
return [3 /*break*/, 10];
case 10: return [3 /*break*/, 12];
case 11:
e_4 = _a.sent();
if (e_4 === failed) {
pass = false;
}
else {
throw e_4;
}
return [3 /*break*/, 12];
case 12: return [2 /*return*/, {
pass: pass,
message: function () {
return (hint +
" Expected component to".concat(pass ? " not" : "", " render exactly ").concat(times, ".") +
" It rendered ".concat(profiler.totalRenderCount(), " times."));
},
}];
}
});
});
};
//# sourceMappingURL=ProfiledComponent.js.map