@@ -3,11 +3,13 @@ const rewire = require('rewire');
3
3
const _ = require ( 'lodash' ) ;
4
4
const fs = require ( 'fs-extra' ) ;
5
5
const get = require ( '../src/lib/get' ) ;
6
+ const events = require ( '../src/lib/events' ) ;
6
7
7
8
const util = require ( './util/test_utils.js' ) ;
8
9
const entry = rewire ( '../src/index' ) ;
9
10
const defaultConfig = require ( '../patternlab-config.json' ) ;
10
11
const testConfig = require ( './util/patternlab-config.json' ) ;
12
+ const packageInfo = require ( './../package' ) ;
11
13
12
14
process . env . PATTERNLAB_ENV = 'CI' ;
13
15
@@ -44,23 +46,143 @@ const fsMock = {
44
46
} ,
45
47
} ;
46
48
49
+ const loadUIKitsMock = ( ) => {
50
+ return Promise . resolve ( ) ;
51
+ } ;
52
+
53
+ const buildPatternsMock = ( ) => {
54
+ return Promise . resolve ( ) ;
55
+ } ;
56
+
47
57
//set our mocks in place of usual require()
48
58
entry . __set__ ( {
49
59
ui_builder : uiBuilderMock ,
50
60
fs : fsMock ,
51
61
copier : copierMock ,
52
62
} ) ;
53
63
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 ) ;
60
71
test . end ( ) ;
61
72
} ) ;
62
73
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 => {
64
186
//arrange
65
187
66
188
const patternExporterMock = {
@@ -132,7 +254,6 @@ tap.test('buildPatterns', function() {
132
254
133
255
tap . test ( 'uses global listItem property' , test => {
134
256
var pattern = get ( 'test-listWithPartial' , patternlab ) ;
135
- console . log ( pattern . patternPartialCode ) ;
136
257
let assertionCount = 0 ;
137
258
[ 'dA' , 'dB' , 'dC' ] . forEach ( d => {
138
259
if ( pattern . patternPartialCode . indexOf ( d ) > - 1 ) {
@@ -224,14 +345,26 @@ tap.test('buildPatterns', function() {
224
345
} ) ;
225
346
226
347
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 ) ;
228
351
229
352
//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
+ } ) ;
237
370
} ) ;
0 commit comments