@@ -3,11 +3,13 @@ const rewire = require('rewire');
33const _ = require ( 'lodash' ) ;
44const fs = require ( 'fs-extra' ) ;
55const get = require ( '../src/lib/get' ) ;
6+ const events = require ( '../src/lib/events' ) ;
67
78const util = require ( './util/test_utils.js' ) ;
89const entry = rewire ( '../src/index' ) ;
910const defaultConfig = require ( '../patternlab-config.json' ) ;
1011const testConfig = require ( './util/patternlab-config.json' ) ;
12+ const packageInfo = require ( './../package' ) ;
1113
1214process . env . PATTERNLAB_ENV = 'CI' ;
1315
@@ -44,23 +46,143 @@ const fsMock = {
4446 } ,
4547} ;
4648
49+ const loadUIKitsMock = ( ) => {
50+ return Promise . resolve ( ) ;
51+ } ;
52+
53+ const buildPatternsMock = ( ) => {
54+ return Promise . resolve ( ) ;
55+ } ;
56+
4757//set our mocks in place of usual require()
4858entry . __set__ ( {
4959 ui_builder : uiBuilderMock ,
5060 fs : fsMock ,
5161 copier : copierMock ,
5262} ) ;
5363
54- tap . test ( 'getDefaultConfig - should return the default config object' , function (
55- test
56- ) {
57- const requestedConfig = entry . getDefaultConfig ( ) ;
58- test . type ( requestedConfig , 'object' ) ;
59- test . equals ( requestedConfig , defaultConfig ) ;
64+ tap . test ( 'version - should call patternlab.getVersion' , test => {
65+ //arrange
66+ const pl = new entry ( testConfig ) ;
67+
68+ //act
69+ //assert
70+ test . equals ( pl . version ( ) , packageInfo . version ) ;
6071 test . end ( ) ;
6172} ) ;
6273
63- tap . test ( 'buildPatterns' , function ( ) {
74+ tap . test (
75+ 'getDefaultConfig - static method should return the default config object' ,
76+ test => {
77+ const requestedConfig = entry . getDefaultConfig ( ) ;
78+ test . type ( requestedConfig , 'object' ) ;
79+ test . equals ( requestedConfig , defaultConfig ) ;
80+ test . end ( ) ;
81+ }
82+ ) ;
83+
84+ tap . test (
85+ 'getDefaultConfig - instance method should return the default config object' ,
86+ test => {
87+ //arrange
88+ const pl = new entry ( testConfig ) ;
89+
90+ //act
91+ //assert
92+ const requestedConfig = pl . getDefaultConfig ( ) ;
93+ test . type ( requestedConfig , 'object' ) ;
94+ test . equals ( requestedConfig , defaultConfig ) ;
95+ test . end ( ) ;
96+ }
97+ ) ;
98+
99+ tap . test (
100+ 'getSupportedTemplateExtensions - calls patternlab.getSupportedTemplateExtensions and returns default template engine extensions' ,
101+ test => {
102+ //arrange
103+ const pl = new entry ( testConfig ) ;
104+
105+ //act
106+ const expectedExtensions = [ '.mustache' ] ;
107+
108+ //assert
109+ test . equals (
110+ pl . getSupportedTemplateExtensions ( ) . length ,
111+ expectedExtensions . length
112+ ) ;
113+ test . same ( pl . getSupportedTemplateExtensions ( ) , expectedExtensions ) ;
114+ test . end ( ) ;
115+ }
116+ ) ;
117+
118+ tap . test ( 'patternsonly a promise' , test => {
119+ //arrange
120+ const revert = entry . __set__ ( 'loaduikits' , loadUIKitsMock ) ;
121+ const pl = new entry ( testConfig ) ;
122+
123+ //act
124+ test . resolves ( pl . patternsonly ( { } ) ) . then ( ( ) => {
125+ revert ( ) ;
126+ test . end ( ) ;
127+ } ) ;
128+ } ) ;
129+
130+ tap . test ( 'patternsonly calls loaduikits' , test => {
131+ //arrange
132+ const revert = entry . __set__ ( 'loaduikits' , ( ) => {
133+ test . ok ( 1 ) ;
134+ return Promise . resolve ( ) ;
135+ } ) ;
136+ const pl = new entry ( testConfig ) ;
137+
138+ //act
139+ test . resolves ( pl . patternsonly ( { } ) ) . then ( ( ) => {
140+ revert ( ) ;
141+ test . end ( ) ;
142+ } ) ;
143+ } ) ;
144+
145+ tap . test ( 'patternsonly calls buildPatterns' , test => {
146+ //arrange
147+ const revert = entry . __set__ (
148+ 'buildPatterns' ,
149+ ( cleanPublic , patternlab , data ) => {
150+ test . type ( cleanPublic , 'boolean' ) ;
151+ test . ok ( cleanPublic ) ;
152+ test . type ( patternlab , 'object' ) ;
153+ test . type ( data , 'object' ) ;
154+ test . equals ( data . foo , 'bar' ) ;
155+ return Promise . resolve ( ) ;
156+ }
157+ ) ;
158+ const pl = new entry ( testConfig ) ;
159+
160+ //act
161+ test
162+ . resolves ( pl . patternsonly ( { cleanPublic : true , data : { foo : 'bar' } } ) )
163+ . then ( ( ) => {
164+ revert ( ) ;
165+ test . end ( ) ;
166+ } ) ;
167+ } ) ;
168+
169+ tap . test ( 'serve calls serve' , test => {
170+ //arrange
171+ const revert = entry . __set__ ( 'serve' , patternlab => {
172+ test . ok ( 1 ) ;
173+ test . type ( patternlab , 'object' ) ;
174+ } ) ;
175+
176+ const pl = new entry ( testConfig ) ;
177+
178+ //act
179+ test . resolves ( pl . serve ( { } ) ) . then ( ( ) => {
180+ revert ( ) ;
181+ test . end ( ) ;
182+ } ) ;
183+ } ) ;
184+
185+ tap . test ( 'buildPatterns suite' , test => {
64186 //arrange
65187
66188 const patternExporterMock = {
@@ -132,7 +254,6 @@ tap.test('buildPatterns', function() {
132254
133255 tap . test ( 'uses global listItem property' , test => {
134256 var pattern = get ( 'test-listWithPartial' , patternlab ) ;
135- console . log ( pattern . patternPartialCode ) ;
136257 let assertionCount = 0 ;
137258 [ 'dA' , 'dB' , 'dC' ] . forEach ( d => {
138259 if ( pattern . patternPartialCode . indexOf ( d ) > - 1 ) {
@@ -224,14 +345,26 @@ tap.test('buildPatterns', function() {
224345 } ) ;
225346
226347 testConfig . patternExportPatternPartials = [ 'test-paramParent' ] ;
227- var pl = new entry ( testConfig ) ;
348+ const pl = new entry ( testConfig ) ;
349+
350+ test . equals ( pl . events . eventNames ( ) . length , 0 ) ;
228351
229352 //act
230- return pl . build ( {
231- cleanPublic : true ,
232- data : {
233- foo : 'Bar' ,
234- description : 'Baz' ,
235- } ,
236- } ) ;
353+ return pl
354+ . build ( {
355+ cleanPublic : true ,
356+ data : {
357+ foo : 'Bar' ,
358+ description : 'Baz' ,
359+ } ,
360+ } )
361+ . then ( ( ) => {
362+ test . equals (
363+ pl . events . eventNames ( ) . length ,
364+ 2 ,
365+ 'should register two events'
366+ ) ;
367+ test . equals ( pl . events . listenerCount ( events . PATTERNLAB_PATTERN_CHANGE ) , 1 ) ;
368+ test . equals ( pl . events . listenerCount ( events . PATTERNLAB_GLOBAL_CHANGE ) , 1 ) ;
369+ } ) ;
237370} ) ;
0 commit comments