forked from pattern-lab/patternlab-node
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathloadPattern_tests.js
More file actions
179 lines (149 loc) · 4.81 KB
/
loadPattern_tests.js
File metadata and controls
179 lines (149 loc) · 4.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
'use strict';
const path = require('path');
const tap = require('tap');
const loadPattern = require('../src/lib/loadPattern');
const util = require('./util/test_utils.js');
const patternEngines = require('../src/lib/pattern_engines');
var config = require('./util/patternlab-config.json');
patternEngines.loadAllEngines(config);
const patterns_dir = `${__dirname}/files/_patterns`;
tap.test(
'loadPattern - returns null if file is not a pattern',
function (test) {
//arrange
const patternlab = util.fakePatternLab(patterns_dir);
var patternPath = path.join('test', 'styled-atom.json');
//act
var result = loadPattern(patternPath, patternlab);
//assert
test.equal(result, null);
test.end();
}
);
tap.test('loadPattern - loads pattern sibling json if found', function (test) {
//arrange
const patternlab = util.fakePatternLab(patterns_dir);
var patternPath = path.join('test', 'styled-atom.mustache');
//act
var result = loadPattern(patternPath, patternlab);
//assert
test.equal(result.jsonFileData.message, 'baseMessage');
test.end();
});
tap.test(
'loadPattern - adds the pattern to the patternlab.partials object',
function (test) {
//arrange
const patternlab = util.fakePatternLab(patterns_dir);
var fooPatternPath = path.join('test', 'bar.mustache');
//act
var result = loadPattern(fooPatternPath, patternlab);
//assert
test.equal(util.sanitized(patternlab.partials['test-bar']), 'bar');
test.end();
}
);
tap.test(
'loadPattern - returns pattern with template populated',
function (test) {
//arrange
const patternlab = util.fakePatternLab(patterns_dir);
var fooPatternPath = path.join('test', 'bar.mustache');
//act
var result = loadPattern(fooPatternPath, patternlab);
//assert
test.equal(util.sanitized(result.template), util.sanitized('bar'));
test.end();
}
);
// TODO: Fix doc pattern test when new logic in loadPattern is implemented
// tap.test('loadPattern - adds a markdown pattern if encountered', function(
// test
// ) {
// //arrange
// const patternlab = util.fakePatternLab(patterns_dir);
// var colorsMarkDownPath = path.join('patternGroup1', 'patternSubgroup1.md');
// //act
// var result = loadPattern(colorsMarkDownPath, patternlab);
// //assert
// const subgroupPattern =
// patternlab.subgroupPatterns['patternGroup1-patternSubgroup1'];
// test.equal(subgroupPattern.patternSectionSubgroup, true);
// test.equal(subgroupPattern.isPattern, false);
// test.equal(subgroupPattern.patternDesc, '<p>Colors</p>\n');
// test.equal(subgroupPattern.engine, null);
// test.equal(
// subgroupPattern.flatPatternPath,
// 'patternGroup1-patternSubgroup1'
// );
// test.equal(result, subgroupPattern);
// test.end();
// });
tap.test(
'loadPattern - does not load pseudopattern data on the base pattern',
(test) => {
//arrange
const patternlab = util.fakePatternLab(patterns_dir);
const basePatternPath = path.join('test', 'pseudomodifier.mustache');
//act
const result = loadPattern(basePatternPath, patternlab);
//assert
test.same(result.jsonFileData, {});
test.end();
}
);
tap.test(
'loadPattern - group and subgroup ordering will be taken from markdown files',
(test) => {
//arrange
const patternlab = util.fakePatternLab(patterns_dir);
const basePatternAPath = path.join('orderTest', 'a', 'a-test.mustache');
const basePatternBPath = path.join('orderTest', 'b', 'b-test.mustache');
const basePatternCPath = path.join(
'orderTest',
'c',
'subfolder',
'subfolder.mustache'
);
//act
const resultPatternA = loadPattern(basePatternAPath, patternlab);
const resultPatternB = loadPattern(basePatternBPath, patternlab);
const resultPatternC = loadPattern(basePatternCPath, patternlab);
//assert
console.log(resultPatternA.patternGroupData.order);
test.same(
resultPatternA.patternGroupData.order,
1,
'Pattern group should be loaded as 1'
);
console.log(resultPatternA.patternSubgroupData.order || 0);
test.same(
resultPatternA.patternSubgroupData.order || 0,
0,
'Pattern Subgroup not be availabe and default to 0'
);
console.log(resultPatternB.patternGroupData.order);
test.same(
resultPatternB.patternGroupData.order,
1,
'Pattern group should be loaded as 1'
);
console.log(resultPatternB.patternSubgroupData.order);
test.same(
resultPatternB.patternSubgroupData.order,
2,
'Pattern Subgroup should be loaded as 2'
);
test.same(
resultPatternC.patternGroupData.order,
1,
'Pattern group should be loaded as 1'
);
test.same(
resultPatternC.patternSubgroupData.order,
-1,
'Pattern Subgroup should be loaded as -1'
);
test.end();
}
);