Files
zulip/frontend_tests/zjsunit/test.js
Steve Howell 5e824a6d6d node tests: Only expose mock_template via run_test.
We now only expose mock_template as a helper in run_test.

This has the following advantages:

    * less boilerplate at the top of the file
    * more surgical control with setting exercise_templates
    * no more "f" hack (or render_foo consts)
    * we force devs to explicitly mock the template

See frontend_tests/zjsunit for the substantive changes.

All the changes to the tests are very mechanical in nature.
2021-06-27 23:00:34 -04:00

46 lines
1.1 KiB
JavaScript

"use strict";
const namespace = require("./namespace");
const zblueslip = require("./zblueslip");
const $ = require("./zjquery");
const zpage_params = require("./zpage_params");
let current_file_name;
let verbose = false;
exports.set_current_file_name = (value) => {
current_file_name = value;
};
exports.set_verbose = (value) => {
verbose = value;
};
exports.run_test = (label, f, opts) => {
const {sloppy_$} = opts || {};
if (verbose) {
console.info(" test: " + label);
}
if (!sloppy_$ && $.clear_all_elements) {
$.clear_all_elements();
}
zpage_params.reset();
try {
namespace._start_template_mocking();
namespace.with_overrides((override) => {
f({override, mock_template: namespace._mock_template});
});
namespace._finish_template_mocking();
} catch (error) {
console.info("-".repeat(50));
console.info(`test failed: ${current_file_name} > ${label}`);
console.info();
throw error;
}
// defensively reset blueslip after each test.
zblueslip.reset();
};