zulip/web/tests/blueslip_stacktrace.test.cjs

63 lines
1.9 KiB
JavaScript

"use strict";
const assert = require("node:assert/strict");
const {zrequire} = require("./lib/namespace.cjs");
const {run_test} = require("./lib/test.cjs");
const blueslip_stacktrace = zrequire("blueslip_stacktrace");
run_test("clean_path", () => {
// Local file
assert.strictEqual(
blueslip_stacktrace.clean_path("webpack:///web/src/upload.ts"),
"/web/src/upload.ts",
);
// Third party library (jQuery)
assert.strictEqual(
blueslip_stacktrace.clean_path(
"webpack:///.-npm-cache/de76fb6f582a29b053274f9048b6158091351048/node_modules/jquery/dist/jquery.js",
),
"jquery/dist/jquery.js",
);
// Third party library (underscore)
assert.strictEqual(
blueslip_stacktrace.clean_path(
"webpack:///.-npm-cache/de76fb6f582a29b053274f9048b…58091351048/node_modules/underscore/underscore.js",
),
"underscore/underscore.js",
);
});
run_test("clean_function_name", () => {
assert.deepEqual(blueslip_stacktrace.clean_function_name(undefined), undefined);
// Local file
assert.deepEqual(
blueslip_stacktrace.clean_function_name("Object../web/src/upload.ts.exports.options"),
{
scope: "Object../web/src/upload.ts.exports.",
name: "options",
},
);
// Third party library (jQuery)
assert.deepEqual(blueslip_stacktrace.clean_function_name("mightThrow"), {
scope: "",
name: "mightThrow",
});
// Third party library (underscore)
assert.deepEqual(
blueslip_stacktrace.clean_function_name(
"Function.../zulip-npm-cache/de76fb6f582a29b053274f…es/underscore/underscore.js?3817._.each._.forEach",
),
{
scope: "Function.../zulip-npm-cache/de76fb6f582a29b053274f…es/underscore/underscore.js?3817._.each._.",
name: "forEach",
},
);
});