From 6e78d0a8754c4fee913aafcd7e0e44717ec6ce40 Mon Sep 17 00:00:00 2001 From: Daniel Janeiro Date: Thu, 5 Oct 2017 20:45:31 +0100 Subject: [PATCH] Add support for pattern parameter links Allow the use of link variables inside pattern parameters. Closes #688 --- core/lib/parameter_hunter.js | 2 ++ test/parameter_hunter_tests.js | 27 +++++++++++++++++++++++---- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/core/lib/parameter_hunter.js b/core/lib/parameter_hunter.js index d9c94e597..b9d47c1ee 100644 --- a/core/lib/parameter_hunter.js +++ b/core/lib/parameter_hunter.js @@ -280,6 +280,8 @@ var parameter_hunter = function () { console.log(err); } + paramData = pattern_assembler.parse_data_links_specific(patternlab, paramData, pattern.patternPartial) + var allData = plutils.mergeData(globalData, localData); allData = plutils.mergeData(allData, paramData); diff --git a/test/parameter_hunter_tests.js b/test/parameter_hunter_tests.js index 5393c077f..120426b0b 100644 --- a/test/parameter_hunter_tests.js +++ b/test/parameter_hunter_tests.js @@ -3,7 +3,6 @@ var tap = require('tap'); var pa = require('../core/lib/pattern_assembler'); var Pattern = require('../core/lib/object_factory').Pattern; -var CompileState = require('../core/lib/object_factory').CompileState; var PatternGraph = require('../core/lib/pattern_graph').PatternGraph; var fs = require('fs-extra'); @@ -59,12 +58,14 @@ function patternlabClosure() { }, data: { description: 'Not a quote from a smart man', - link: {} + link: { + "molecules-single-comment": "01-molecules-06-components-02-single-comment/01-molecules-06-components-02-single-comment.html" + } }, partials: {}, graph: PatternGraph.empty() - } -}; + }; +} tap.test('parameter hunter finds and extends templates', function(test) { var currentPattern = currentPatternClosure(); @@ -402,3 +403,21 @@ tap.test('parameter hunter parses parameters containing html tags', function(tes test.end(); }); + +tap.test('parameter hunter expands links inside parameters', function (test) { + var currentPattern = currentPatternClosure(); + var patternlab = patternlabClosure(); + var parameter_hunter = new ph(); + + patternlab.patterns[0].template = '{{ description }}'; + patternlab.patterns[0].extendedTemplate = patternlab.patterns[0].template; + + currentPattern.template = "{{> molecules-single-comment(url: 'link.molecules-single-comment', description: 'Link to single comment') }}"; + currentPattern.extendedTemplate = currentPattern.template; + currentPattern.parameteredPartials[0] = currentPattern.template; + + parameter_hunter.find_parameters(currentPattern, patternlab); + test.equals(currentPattern.extendedTemplate, 'Link to single comment'); + + test.end(); +});