|
514 | 514 | var pattern_assembler = new pa();
|
515 | 515 | var patterns_dir = './test/files/_patterns';
|
516 | 516 | var patternlab = {};
|
| 517 | + //THIS IS BAD. |
517 | 518 | patternlab.config = fs.readJSONSync('./config.json');
|
518 | 519 | patternlab.config.patterns = {source: patterns_dir};
|
519 | 520 | patternlab.data = fs.readJSONSync('./source/_data/data.json');
|
|
596 | 597 | //assert
|
597 | 598 | test.equals(pattern.patternState, "");
|
598 | 599 | test.done();
|
| 600 | + }, |
| 601 | + 'parseDataLinks - replaces found link.* data for their expanded links' : function(test){ |
| 602 | + //arrange |
| 603 | + var diveSync = require('diveSync'); |
| 604 | + var fs = require('fs-extra'); |
| 605 | + var pa = require('../builder/pattern_assembler'); |
| 606 | + var pattern_assembler = new pa(); |
| 607 | + var patterns_dir = './test/files/_patterns/'; |
| 608 | + var patternlab = {}; |
| 609 | + //THIS IS BAD |
| 610 | + patternlab.config = fs.readJSONSync('./config.json'); |
| 611 | + patternlab.config.patterns = {source: patterns_dir}; |
| 612 | + patternlab.data = fs.readJSONSync('./source/_data/data.json'); |
| 613 | + patternlab.listitems = fs.readJSONSync('./source/_data/listitems.json'); |
| 614 | + patternlab.header = fs.readFileSync('./source/_patternlab-files/pattern-header-footer/header.html', 'utf8'); |
| 615 | + patternlab.footer = fs.readFileSync('./source/_patternlab-files/pattern-header-footer/footer.html', 'utf8'); |
| 616 | + patternlab.patterns = []; |
| 617 | + patternlab.data.link = {}; |
| 618 | + patternlab.partials = {}; |
| 619 | + |
| 620 | + diveSync(patterns_dir, |
| 621 | + { |
| 622 | + filter: function(path, dir){ |
| 623 | + if(dir){ |
| 624 | + var remainingPath = path.replace(patterns_dir, ''); |
| 625 | + var isValidPath = remainingPath.indexOf('/_') === -1; |
| 626 | + return isValidPath; |
| 627 | + } |
| 628 | + return true; |
| 629 | + } |
| 630 | + }, |
| 631 | + function(err, file){ |
| 632 | + //log any errors |
| 633 | + if(err){ |
| 634 | + console.log(err); |
| 635 | + return; |
| 636 | + } |
| 637 | + pattern_assembler.process_pattern_iterative(file.substring(2), patternlab); |
| 638 | + } |
| 639 | + ); |
| 640 | + |
| 641 | + //for the sake of the test, also imagining I have the following pages... |
| 642 | + patternlab.data.link['twitter-brad'] = 'https://twitter.com/brad_frost'; |
| 643 | + patternlab.data.link['twitter-dave'] = 'https://twitter.com/dmolsen'; |
| 644 | + patternlab.data.link['twitter-brian'] = 'https://twitter.com/bmuenzenmeyer'; |
| 645 | + |
| 646 | + var pattern; |
| 647 | + for(var i = 0; i < patternlab.patterns.length; i++){ |
| 648 | + if(patternlab.patterns[i].key === 'test-nav'){ |
| 649 | + pattern = patternlab.patterns[i]; |
| 650 | + } |
| 651 | + } |
| 652 | + //assert before |
| 653 | + test.equals(pattern.jsonFileData.brad.url, "link.twitter-brad"); |
| 654 | + test.equals(pattern.jsonFileData.dave.url, "link.twitter-dave"); |
| 655 | + test.equals(pattern.jsonFileData.brian.url, "link.twitter-brian"); |
| 656 | + |
| 657 | + //act |
| 658 | + pattern_assembler.parse_data_links(patternlab); |
| 659 | + |
| 660 | + //assert after |
| 661 | + test.equals(pattern.jsonFileData.brad.url, "https://twitter.com/brad_frost"); |
| 662 | + test.equals(pattern.jsonFileData.dave.url, "https://twitter.com/dmolsen"); |
| 663 | + test.equals(pattern.jsonFileData.brian.url, "https://twitter.com/bmuenzenmeyer"); |
| 664 | + test.done(); |
599 | 665 | }
|
600 | 666 | };
|
601 | 667 | }());
|
0 commit comments