1
1
"use strict" ;
2
2
3
3
var tap = require ( 'tap' ) ;
4
+ var fs = require ( 'fs-extra' ) ;
5
+ var path = require ( 'path' ) ;
4
6
5
7
var pa = require ( '../core/lib/pattern_assembler' ) ;
8
+ var pattern_assembler = new pa ( ) ;
6
9
var Pattern = require ( '../core/lib/object_factory' ) . Pattern ;
7
10
var CompileState = require ( '../core/lib/object_factory' ) . CompileState ;
8
11
var PatternGraph = require ( '../core/lib/pattern_graph' ) . PatternGraph ;
9
- var path = require ( 'path' ) ;
10
- var config = require ( './util/patternlab-config.json' ) ;
11
12
var engineLoader = require ( '../core/lib/pattern_engines' ) ;
13
+ var plMain = require ( '../core/lib/patternlab' ) ;
14
+ var config = require ( './util/patternlab-config.json' ) ;
15
+
12
16
engineLoader . loadAllEngines ( config ) ;
13
17
14
18
function emptyPatternLab ( ) {
@@ -22,56 +26,28 @@ const public_dir = './test/public';
22
26
23
27
tap . test ( 'process_pattern_recursive recursively includes partials' , function ( test ) {
24
28
25
- //tests inclusion of partial that will be discovered by diveSync later in iteration than parent
26
- //prepare to diveSync
27
- var diveSync = require ( 'diveSync' ) ;
28
- var fs = require ( 'fs-extra' ) ;
29
- var pa = require ( '../core/lib/pattern_assembler' ) ;
30
- var plMain = require ( '../core/lib/patternlab' ) ;
31
- var pattern_assembler = new pa ( ) ;
32
- var patternlab = emptyPatternLab ( ) ;
33
- patternlab . config = fs . readJSONSync ( './patternlab-config.json' ) ;
34
- patternlab . config . paths . source . patterns = patterns_dir ;
35
- patternlab . config . paths . public = public_dir ;
36
- patternlab . config . outputFileSuffixes = { rendered : '' } ;
29
+ var patternlab = new plMain ( config ) ;
30
+ patternlab . graph = PatternGraph . empty ( ) ;
37
31
38
- patternlab . data = { } ;
39
- patternlab . listitems = { } ;
40
- patternlab . header = '' ;
41
- patternlab . footer = '' ;
42
- patternlab . patterns = [ ] ;
43
- patternlab . data . link = { } ;
44
- patternlab . partials = { } ;
32
+ var fooPattern = new Pattern ( '00-test/00-foo.mustache' ) ;
33
+ fooPattern . template = fs . readFileSync ( patterns_dir + '/00-test/00-foo.mustache' , 'utf8' ) ;
34
+ fooPattern . stylePartials = pattern_assembler . find_pattern_partials_with_style_modifiers ( fooPattern ) ;
45
35
46
- //diveSync once to perform iterative populating of patternlab object
47
- plMain . process_all_patterns_iterative ( patterns_dir , patternlab )
48
- . then ( ( ) => {
49
- //diveSync again to recursively include partials, filling out the
50
- //extendedTemplate property of the patternlab.patterns elements
51
- plMain . process_all_patterns_recursive ( patterns_dir , patternlab ) ;
52
-
53
- //get test output for comparison
54
- var foo = fs . readFileSync ( patterns_dir + '/00-test/00-foo.mustache' , 'utf8' ) . trim ( ) ;
55
- var bar = fs . readFileSync ( patterns_dir + '/00-test/01-bar.mustache' , 'utf8' ) . trim ( ) ;
56
- var fooExtended ;
57
-
58
- //get extended pattern
59
- for ( var i = 0 ; i < patternlab . patterns . length ; i ++ ) {
60
- if ( patternlab . patterns [ i ] . fileName === '00-foo' ) {
61
- fooExtended = patternlab . patterns [ i ] . extendedTemplate . trim ( ) ;
62
- break ;
63
- }
64
- }
36
+ var barPattern = new Pattern ( '00-test/01-bar.mustache' ) ;
37
+ barPattern . template = fs . readFileSync ( patterns_dir + '/00-test/01-bar.mustache' , 'utf8' ) ;
38
+ barPattern . stylePartials = pattern_assembler . find_pattern_partials_with_style_modifiers ( barPattern ) ;
65
39
66
- //check initial values
67
- test . equals ( foo , '{{> test-bar }}' , 'foo template not as expected' ) ;
68
- test . equals ( bar , 'bar' , 'bar template not as expected' ) ;
69
- //test that 00-foo.mustache included partial 01-bar.mustache
70
- test . equals ( fooExtended , 'bar' , 'foo includes bar' ) ;
40
+ pattern_assembler . addPattern ( fooPattern , patternlab ) ;
41
+ pattern_assembler . addPattern ( barPattern , patternlab ) ;
71
42
72
- test . end ( ) ;
73
- } )
74
- . catch ( test . threw ) ;
43
+ //act
44
+
45
+ pattern_assembler . process_pattern_recursive ( '00-test' + path . sep + '00-foo.mustache' , patternlab , { } ) ;
46
+
47
+ //assert
48
+ var expectedValue = 'bar' ;
49
+ test . equals ( fooPattern . extendedTemplate . replace ( / \s \s + / g, ' ' ) . replace ( / \n / g, ' ' ) . trim ( ) , expectedValue . trim ( ) ) ;
50
+ test . end ( ) ;
75
51
} ) ;
76
52
77
53
tap . test ( 'processPatternRecursive - correctly replaces all stylemodifiers when multiple duplicate patterns with different stylemodifiers found' , function ( test ) {
@@ -498,68 +474,55 @@ tap.test('processPatternRecursive - 685 ensure listitems data is used', function
498
474
499
475
tap . test ( 'parseDataLinks - replaces found link.* data for their expanded links' , function ( test ) {
500
476
//arrange
501
- var diveSync = require ( 'diveSync' ) ;
502
- var fs = require ( 'fs-extra' ) ;
503
- var pa = require ( '../core/lib/pattern_assembler' ) ;
504
- var plMain = require ( '../core/lib/patternlab' ) ;
505
- var pattern_assembler = new pa ( ) ;
506
- var patterns_dir = './test/files/_patterns/' ;
507
- var patternlab = emptyPatternLab ( ) ;
508
- //THIS IS BAD
509
- patternlab . config = fs . readJSONSync ( './patternlab-config.json' ) ;
510
- patternlab . config . paths . source . patterns = patterns_dir ;
511
- patternlab . config . outputFileSuffixes = { rendered : '' } ;
512
- patternlab . data = { } ;
513
- patternlab . listitems = { } ;
514
- patternlab . header = { } ;
515
- patternlab . footer = { } ;
477
+ var patternlab = new plMain ( config ) ;
478
+ patternlab . graph = PatternGraph . empty ( ) ;
479
+
516
480
patternlab . patterns = [
517
481
Pattern . createEmpty ( { patternPartial : 'twitter-brad' } , patternlab ) ,
518
482
Pattern . createEmpty ( { patternPartial : 'twitter-dave' } , patternlab ) ,
519
483
Pattern . createEmpty ( { patternPartial : 'twitter-brian' } , patternlab )
520
484
] ;
521
485
patternlab . data . link = { } ;
522
- patternlab . partials = { } ;
523
486
524
- //diveSync once to perform iterative populating of patternlab object
525
- plMain . process_all_patterns_iterative ( patterns_dir , patternlab )
526
- . then ( ( ) => {
527
- //for the sake of the test, also imagining I have the following pages...
528
- patternlab . data . link [ 'twitter-brad' ] = 'https://twitter.com/brad_frost' ;
529
- patternlab . data . link [ 'twitter-dave' ] = 'https://twitter.com/dmolsen' ;
530
- patternlab . data . link [ 'twitter-brian' ] = 'https://twitter.com/bmuenzenmeyer' ;
487
+ var navPattern = pattern_assembler . load_pattern_iterative ( '00-test/nav.mustache' , patternlab ) ;
488
+ pattern_assembler . addPattern ( navPattern , patternlab ) ;
531
489
532
- patternlab . data . brad = { url : "link.twitter-brad" } ;
533
- patternlab . data . dave = { url : "link.twitter-dave" } ;
534
- patternlab . data . brian = { url : "link.twitter-brian" } ;
490
+ //for the sake of the test, also imagining I have the following pages...
491
+ patternlab . data . link [ 'twitter-brad' ] = 'https://twitter.com/brad_frost' ;
492
+ patternlab . data . link [ 'twitter-dave' ] = 'https://twitter.com/dmolsen' ;
493
+ patternlab . data . link [ 'twitter-brian' ] = 'https://twitter.com/bmuenzenmeyer' ;
535
494
495
+ patternlab . data . brad = { url : "link.twitter-brad" } ;
496
+ patternlab . data . dave = { url : "link.twitter-dave" } ;
497
+ patternlab . data . brian = { url : "link.twitter-brian" } ;
536
498
537
- var pattern ;
538
- for ( var i = 0 ; i < patternlab . patterns . length ; i ++ ) {
539
- if ( patternlab . patterns [ i ] . patternPartial === 'test-nav' ) {
540
- pattern = patternlab . patterns [ i ] ;
541
- }
542
- }
499
+ var pattern ;
500
+ for ( var i = 0 ; i < patternlab . patterns . length ; i ++ ) {
501
+ if ( patternlab . patterns [ i ] . patternPartial === 'test-nav' ) {
502
+ pattern = patternlab . patterns [ i ] ;
503
+ }
504
+ }
505
+
506
+
507
+ console . log ( )
508
+
509
+ //assert before
510
+ test . equals ( pattern . jsonFileData . brad . url , "link.twitter-brad" , "brad pattern data should be found" ) ;
511
+ test . equals ( pattern . jsonFileData . dave . url , "link.twitter-dave" , "dave pattern data should be found" ) ;
512
+ test . equals ( pattern . jsonFileData . brian . url , "link.twitter-brian" , "brian pattern data should be found" ) ;
543
513
544
- //assert before
545
- test . equals ( pattern . jsonFileData . brad . url , "link.twitter-brad" , "brad pattern data should be found" ) ;
546
- test . equals ( pattern . jsonFileData . dave . url , "link.twitter-dave" , "dave pattern data should be found" ) ;
547
- test . equals ( pattern . jsonFileData . brian . url , "link.twitter-brian" , "brian pattern data should be found" ) ;
548
-
549
- //act
550
- pattern_assembler . parse_data_links ( patternlab ) ;
551
-
552
- //assert after
553
- test . equals ( pattern . jsonFileData . brad . url , "https://twitter.com/brad_frost" , "brad pattern data should be replaced" ) ;
554
- test . equals ( pattern . jsonFileData . dave . url , "https://twitter.com/dmolsen" , "dave pattern data should be replaced" ) ;
555
- test . equals ( pattern . jsonFileData . brian . url , "https://twitter.com/bmuenzenmeyer" , "brian pattern data should be replaced" ) ;
556
-
557
- test . equals ( patternlab . data . brad . url , "https://twitter.com/brad_frost" , "global brad data should be replaced" ) ;
558
- test . equals ( patternlab . data . dave . url , "https://twitter.com/dmolsen" , "global dave data should be replaced" ) ;
559
- test . equals ( patternlab . data . brian . url , "https://twitter.com/bmuenzenmeyer" , "global brian data should be replaced" ) ;
560
- test . end ( ) ;
561
- } )
562
- . catch ( test . threw ) ;
514
+ //act
515
+ pattern_assembler . parse_data_links ( patternlab ) ;
516
+
517
+ //assert after
518
+ test . equals ( pattern . jsonFileData . brad . url , "https://twitter.com/brad_frost" , "brad pattern data should be replaced" ) ;
519
+ test . equals ( pattern . jsonFileData . dave . url , "https://twitter.com/dmolsen" , "dave pattern data should be replaced" ) ;
520
+ test . equals ( pattern . jsonFileData . brian . url , "https://twitter.com/bmuenzenmeyer" , "brian pattern data should be replaced" ) ;
521
+
522
+ test . equals ( patternlab . data . brad . url , "https://twitter.com/brad_frost" , "global brad data should be replaced" ) ;
523
+ test . equals ( patternlab . data . dave . url , "https://twitter.com/dmolsen" , "global dave data should be replaced" ) ;
524
+ test . equals ( patternlab . data . brian . url , "https://twitter.com/bmuenzenmeyer" , "global brian data should be replaced" ) ;
525
+ test . end ( ) ;
563
526
} ) ;
564
527
565
528
tap . test ( 'get_pattern_by_key - returns the fuzzy result when no others found' , function ( test ) {
0 commit comments