mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	node tests: Extract render.find_included_partials().
This commit is contained in:
		@@ -42,6 +42,18 @@ fs.readdirSync(path.join(__dirname, "../../static/templates/", "settings")).forE
 | 
				
			|||||||
    render(o.replace(/\.handlebars/, ""));
 | 
					    render(o.replace(/\.handlebars/, ""));
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(function test_finding_partials () {
 | 
				
			||||||
 | 
					    var fns = global.find_included_partials('settings_tab');
 | 
				
			||||||
 | 
					    assert.deepEqual(fns, [
 | 
				
			||||||
 | 
					        'account-settings',
 | 
				
			||||||
 | 
					        'display-settings',
 | 
				
			||||||
 | 
					        'notification-settings',
 | 
				
			||||||
 | 
					        'bot-settings',
 | 
				
			||||||
 | 
					        'alert-word-settings',
 | 
				
			||||||
 | 
					        'ui-settings'
 | 
				
			||||||
 | 
					    ]);
 | 
				
			||||||
 | 
					}());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(function test_handlebars_bug () {
 | 
					(function test_handlebars_bug () {
 | 
				
			||||||
    // There was a bug in 1.0.9 where identically structured
 | 
					    // There was a bug in 1.0.9 where identically structured
 | 
				
			||||||
    // blocks get confused, so when foo is false, it still
 | 
					    // blocks get confused, so when foo is false, it still
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,6 +24,7 @@ var render = require('./render.js');
 | 
				
			|||||||
global.use_template = render.use_template;
 | 
					global.use_template = render.use_template;
 | 
				
			||||||
global.make_sure_all_templates_have_been_compiled = render.make_sure_all_templates_have_been_compiled;
 | 
					global.make_sure_all_templates_have_been_compiled = render.make_sure_all_templates_have_been_compiled;
 | 
				
			||||||
global.partial_finder = render.partial_finder;
 | 
					global.partial_finder = render.partial_finder;
 | 
				
			||||||
 | 
					global.find_included_partials = render.find_included_partials;
 | 
				
			||||||
global.walk = render.walk;
 | 
					global.walk = render.walk;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Set up helpers to output HTML
 | 
					// Set up helpers to output HTML
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -112,6 +112,27 @@ exports.template_finder = (function () {
 | 
				
			|||||||
    return self;
 | 
					    return self;
 | 
				
			||||||
}());
 | 
					}());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					exports.find_included_partials = function (name) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    var file = exports.template_finder.get(name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    assert(file);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    var template = fs.readFileSync(file.url, "utf8");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    var lst = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // match partial tags.
 | 
				
			||||||
 | 
					    // this uses String.prototype.replace which is kind of hacky but
 | 
				
			||||||
 | 
					    // it is the only JS function IIRC that allows you to match all
 | 
				
			||||||
 | 
					    // instances of a pattern AND return capture groups.
 | 
				
			||||||
 | 
					    template.replace(/\{\{\s*partial\s*"(.+?)"/ig, function (match, $1) {
 | 
				
			||||||
 | 
					        lst.push($1);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return lst;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
exports.partial_finder = (function () {
 | 
					exports.partial_finder = (function () {
 | 
				
			||||||
    var meta = {
 | 
					    var meta = {
 | 
				
			||||||
        read: []
 | 
					        read: []
 | 
				
			||||||
@@ -128,20 +149,12 @@ exports.partial_finder = (function () {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            meta.read.push(name);
 | 
					            meta.read.push(name);
 | 
				
			||||||
 | 
					            var included_fns = exports.find_included_partials(name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var file = exports.template_finder.get(name);
 | 
					            _.each(included_fns, function (fn) {
 | 
				
			||||||
 | 
					                __prototype__(fn, callback);
 | 
				
			||||||
            if (file) {
 | 
					 | 
				
			||||||
                var template = fs.readFileSync(file.url, "utf8");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                // match partial tags.
 | 
					 | 
				
			||||||
                // this uses String.prototype.replace which is kind of hacky but
 | 
					 | 
				
			||||||
                // it is the only JS function IIRC that allows you to match all
 | 
					 | 
				
			||||||
                // instances of a pattern AND return capture groups.
 | 
					 | 
				
			||||||
                template.replace(/\{\{\s*partial\s*"(.+?)"/ig, function (match, $1) {
 | 
					 | 
				
			||||||
                    __prototype__($1, callback);
 | 
					 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
            }
 | 
					
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user