mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 22:13:26 +00:00
This function can redraws the lock icon (or lack of lock icon) for a stream in the stream sidebar. It can be called when admins change the stream privacy. (imported from commit 880133d02525137094c48ecad8cf2dfff59f3307)
99 lines
2.7 KiB
JavaScript
99 lines
2.7 KiB
JavaScript
var fs = require('fs');
|
|
var _ = require('third/underscore/underscore.js');
|
|
var Handlebars = require('handlebars');
|
|
|
|
// Run all the JS scripts in our test directory. Tests do NOT run
|
|
// in isolation.
|
|
|
|
var tests = fs.readdirSync(__dirname)
|
|
.filter(function (filename) { return (/\.js$/i).test(filename); })
|
|
.map(function (filename) { return filename.replace(/\.js$/i, ''); });
|
|
|
|
|
|
tests.sort();
|
|
|
|
var dependencies = [];
|
|
|
|
global.set_global = function (name, val) {
|
|
global[name] = val;
|
|
dependencies.push(name);
|
|
return val;
|
|
};
|
|
|
|
global.add_dependencies = function (dct) {
|
|
_.each(dct, function (fn, name) {
|
|
var obj = require(fn);
|
|
set_global(name, obj);
|
|
});
|
|
};
|
|
|
|
function template_dir() {
|
|
return __dirname + '/../../../../static/templates/';
|
|
}
|
|
|
|
global.make_sure_all_templates_have_been_compiled = function () {
|
|
var dir = template_dir();
|
|
var fns = fs.readdirSync(dir).filter(function (fn) {
|
|
return (/\.handlebars/).test(fn);
|
|
});
|
|
|
|
_.each(fns, function (fn) {
|
|
var name = fn.split('.')[0];
|
|
if (!Handlebars.templates[name]) {
|
|
throw "The file " + fn + " has no test coverage.";
|
|
}
|
|
});
|
|
};
|
|
|
|
global.use_template = function (name) {
|
|
if (Handlebars.templates === undefined) {
|
|
Handlebars.templates = {};
|
|
}
|
|
var data = fs.readFileSync(template_dir() + name + '.handlebars').toString();
|
|
Handlebars.templates[name] = Handlebars.compile(data);
|
|
};
|
|
|
|
var output_fn = '.test-js-with-node.html';
|
|
|
|
(function () {
|
|
var data = '';
|
|
|
|
data += '<link href="./static/styles/zulip.css" rel="stylesheet">\n';
|
|
data += '<link href="./static/styles/thirdparty-fonts.css" rel="stylesheet">\n';
|
|
data += '<link href="./static/third/bootstrap/css/bootstrap.css" rel="stylesheet">\n';
|
|
data += '<style type="text/css">.collapse {height: inherit}</style>\n';
|
|
data += '<style type="text/css">body {width: 500px; margin: auto}</style>\n';
|
|
data += '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">';
|
|
data += '<h1>Output of node unit tests</h1>\n';
|
|
fs.writeFileSync(output_fn, data);
|
|
}());
|
|
|
|
global.write_test_output = function (label, output) {
|
|
var data = '';
|
|
|
|
data += '<hr>';
|
|
data += '<h3>' + label + '</h3>';
|
|
data += output;
|
|
data += '\n';
|
|
fs.appendFileSync(output_fn, data);
|
|
};
|
|
|
|
global.append_test_output = function (output) {
|
|
fs.appendFileSync(output_fn, output);
|
|
};
|
|
|
|
tests.forEach(function (filename) {
|
|
if (filename === 'index') {
|
|
return;
|
|
}
|
|
console.info('running tests for ' + filename);
|
|
require('./' + filename);
|
|
|
|
dependencies.forEach(function (name) {
|
|
delete global[name];
|
|
});
|
|
dependencies = [];
|
|
});
|
|
|
|
console.info("To see more output, open " + output_fn);
|