shaka-bundle-size 0.0.11 → 0.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/SourceMapGenerator.d.ts.map +1 -1
- package/dist/SourceMapGenerator.js +3 -1
- package/dist/SourceMapGenerator.js.map +1 -1
- package/dist/WebpackStatsReader.js +1 -1
- package/dist/WebpackStatsReader.js.map +1 -1
- package/dist/__tests__/BaselineComparator.test.d.ts +2 -0
- package/dist/__tests__/BaselineComparator.test.d.ts.map +1 -0
- package/dist/__tests__/BaselineComparator.test.js +269 -0
- package/dist/__tests__/BaselineComparator.test.js.map +1 -0
- package/dist/__tests__/BaselineStorage.test.d.ts +2 -0
- package/dist/__tests__/BaselineStorage.test.d.ts.map +1 -0
- package/dist/__tests__/BaselineStorage.test.js +145 -0
- package/dist/__tests__/BaselineStorage.test.js.map +1 -0
- package/dist/__tests__/BaselineWriter.test.d.ts +2 -0
- package/dist/__tests__/BaselineWriter.test.d.ts.map +1 -0
- package/dist/__tests__/BaselineWriter.test.js +169 -0
- package/dist/__tests__/BaselineWriter.test.js.map +1 -0
- package/dist/__tests__/BundleSizeChecker.test.d.ts +2 -0
- package/dist/__tests__/BundleSizeChecker.test.d.ts.map +1 -0
- package/dist/__tests__/BundleSizeChecker.test.js +276 -0
- package/dist/__tests__/BundleSizeChecker.test.js.map +1 -0
- package/dist/__tests__/ExtendedStatsGenerator.test.d.ts +2 -0
- package/dist/__tests__/ExtendedStatsGenerator.test.d.ts.map +1 -0
- package/dist/__tests__/ExtendedStatsGenerator.test.js +118 -0
- package/dist/__tests__/ExtendedStatsGenerator.test.js.map +1 -0
- package/dist/__tests__/HtmlDiffGenerator.test.d.ts +2 -0
- package/dist/__tests__/HtmlDiffGenerator.test.d.ts.map +1 -0
- package/dist/__tests__/HtmlDiffGenerator.test.js +283 -0
- package/dist/__tests__/HtmlDiffGenerator.test.js.map +1 -0
- package/dist/__tests__/RegressionDetector.test.d.ts +2 -0
- package/dist/__tests__/RegressionDetector.test.d.ts.map +1 -0
- package/dist/__tests__/RegressionDetector.test.js +227 -0
- package/dist/__tests__/RegressionDetector.test.js.map +1 -0
- package/dist/__tests__/Reporter.test.d.ts +2 -0
- package/dist/__tests__/Reporter.test.d.ts.map +1 -0
- package/dist/__tests__/Reporter.test.js +359 -0
- package/dist/__tests__/Reporter.test.js.map +1 -0
- package/dist/__tests__/SizeCalculator.test.d.ts +2 -0
- package/dist/__tests__/SizeCalculator.test.d.ts.map +1 -0
- package/dist/__tests__/SizeCalculator.test.js +172 -0
- package/dist/__tests__/SizeCalculator.test.js.map +1 -0
- package/dist/__tests__/SourceMapGenerator.test.d.ts +2 -0
- package/dist/__tests__/SourceMapGenerator.test.d.ts.map +1 -0
- package/dist/__tests__/SourceMapGenerator.test.js +242 -0
- package/dist/__tests__/SourceMapGenerator.test.js.map +1 -0
- package/dist/__tests__/WebpackStatsReader.test.d.ts +2 -0
- package/dist/__tests__/WebpackStatsReader.test.d.ts.map +1 -0
- package/dist/__tests__/WebpackStatsReader.test.js +210 -0
- package/dist/__tests__/WebpackStatsReader.test.js.map +1 -0
- package/dist/__tests__/colors.test.d.ts +2 -0
- package/dist/__tests__/colors.test.d.ts.map +1 -0
- package/dist/__tests__/colors.test.js +54 -0
- package/dist/__tests__/colors.test.js.map +1 -0
- package/dist/__tests__/config.test.d.ts +2 -0
- package/dist/__tests__/config.test.d.ts.map +1 -0
- package/dist/__tests__/config.test.js +380 -0
- package/dist/__tests__/config.test.js.map +1 -0
- package/dist/cli.js +25 -14
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +197 -34
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +90 -18
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/package.json +7 -2
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
const fs = __importStar(require("fs"));
|
|
37
|
+
const path = __importStar(require("path"));
|
|
38
|
+
const HtmlDiffGenerator_1 = require("../HtmlDiffGenerator");
|
|
39
|
+
describe('HtmlDiffGenerator', () => {
|
|
40
|
+
const tmpDir = path.join(__dirname, 'tmp-html-diff');
|
|
41
|
+
const controlDir = path.join(tmpDir, 'control');
|
|
42
|
+
const currentDir = path.join(tmpDir, 'current');
|
|
43
|
+
const outputDir = path.join(tmpDir, 'output');
|
|
44
|
+
const templateDir = path.join(tmpDir, 'templates');
|
|
45
|
+
const templatePath = path.join(templateDir, 'template.html');
|
|
46
|
+
const minimalTemplate = `<!DOCTYPE html>
|
|
47
|
+
<html>
|
|
48
|
+
<head>
|
|
49
|
+
<!--diff2html-css-->
|
|
50
|
+
<!--diff2html-title-->
|
|
51
|
+
</head>
|
|
52
|
+
<body>
|
|
53
|
+
<!--diff2html-js-ui-->
|
|
54
|
+
<div id="diff"><!--diff2html-diff--></div>
|
|
55
|
+
<script>
|
|
56
|
+
const targetElement = document.getElementById('diff');
|
|
57
|
+
const diff2htmlUi = new Diff2HtmlUI(targetElement);
|
|
58
|
+
//diff2html-fileListToggle
|
|
59
|
+
//diff2html-synchronisedScroll
|
|
60
|
+
//diff2html-highlightCode
|
|
61
|
+
</script>
|
|
62
|
+
</body>
|
|
63
|
+
</html>`;
|
|
64
|
+
beforeEach(() => {
|
|
65
|
+
fs.mkdirSync(controlDir, { recursive: true });
|
|
66
|
+
fs.mkdirSync(currentDir, { recursive: true });
|
|
67
|
+
fs.mkdirSync(outputDir, { recursive: true });
|
|
68
|
+
fs.mkdirSync(templateDir, { recursive: true });
|
|
69
|
+
fs.writeFileSync(templatePath, minimalTemplate);
|
|
70
|
+
});
|
|
71
|
+
afterEach(() => {
|
|
72
|
+
if (fs.existsSync(tmpDir)) {
|
|
73
|
+
fs.rmSync(tmpDir, { recursive: true });
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
describe('escapeHtml', () => {
|
|
77
|
+
it('escapes special HTML characters', () => {
|
|
78
|
+
const gen = new HtmlDiffGenerator_1.HtmlDiffGenerator();
|
|
79
|
+
expect(gen.escapeHtml('&')).toBe('&');
|
|
80
|
+
expect(gen.escapeHtml('<')).toBe('<');
|
|
81
|
+
expect(gen.escapeHtml('>')).toBe('>');
|
|
82
|
+
expect(gen.escapeHtml('"')).toBe('"');
|
|
83
|
+
expect(gen.escapeHtml("'")).toBe(''');
|
|
84
|
+
});
|
|
85
|
+
it('escapes multiple characters in one string', () => {
|
|
86
|
+
const gen = new HtmlDiffGenerator_1.HtmlDiffGenerator();
|
|
87
|
+
expect(gen.escapeHtml('<div class="test">')).toBe('<div class="test">');
|
|
88
|
+
});
|
|
89
|
+
it('returns empty string unchanged', () => {
|
|
90
|
+
const gen = new HtmlDiffGenerator_1.HtmlDiffGenerator();
|
|
91
|
+
expect(gen.escapeHtml('')).toBe('');
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
describe('ensureDirectoryExists', () => {
|
|
95
|
+
it('creates directory if it does not exist', () => {
|
|
96
|
+
const gen = new HtmlDiffGenerator_1.HtmlDiffGenerator();
|
|
97
|
+
const newDir = path.join(tmpDir, 'new-dir');
|
|
98
|
+
gen.ensureDirectoryExists(newDir);
|
|
99
|
+
expect(fs.existsSync(newDir)).toBe(true);
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
describe('getFilesInDirectory', () => {
|
|
103
|
+
it('returns files in a directory', () => {
|
|
104
|
+
const gen = new HtmlDiffGenerator_1.HtmlDiffGenerator();
|
|
105
|
+
fs.writeFileSync(path.join(currentDir, 'a.json'), '{}');
|
|
106
|
+
fs.writeFileSync(path.join(currentDir, 'b.txt'), '');
|
|
107
|
+
const files = gen.getFilesInDirectory(currentDir);
|
|
108
|
+
expect(files).toContain('a.json');
|
|
109
|
+
expect(files).toContain('b.txt');
|
|
110
|
+
});
|
|
111
|
+
it('returns empty array for non-existent directory', () => {
|
|
112
|
+
const gen = new HtmlDiffGenerator_1.HtmlDiffGenerator();
|
|
113
|
+
expect(gen.getFilesInDirectory('/nonexistent')).toEqual([]);
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
describe('buildMetadataScript', () => {
|
|
117
|
+
it('includes all metadata fields', () => {
|
|
118
|
+
const gen = new HtmlDiffGenerator_1.HtmlDiffGenerator();
|
|
119
|
+
const script = gen.buildMetadataScript('config.json', {
|
|
120
|
+
masterCommit: 'abc1234',
|
|
121
|
+
branchName: 'feature/test',
|
|
122
|
+
currentCommit: 'def5678',
|
|
123
|
+
});
|
|
124
|
+
expect(script).toContain('config.json');
|
|
125
|
+
expect(script).toContain('abc1234');
|
|
126
|
+
expect(script).toContain('feature/test');
|
|
127
|
+
expect(script).toContain('def5678');
|
|
128
|
+
});
|
|
129
|
+
it('handles empty metadata', () => {
|
|
130
|
+
const gen = new HtmlDiffGenerator_1.HtmlDiffGenerator();
|
|
131
|
+
const script = gen.buildMetadataScript('file.json', {});
|
|
132
|
+
expect(script).toContain('file.json');
|
|
133
|
+
expect(script).toContain('<script>');
|
|
134
|
+
});
|
|
135
|
+
it('escapes HTML in filename', () => {
|
|
136
|
+
const gen = new HtmlDiffGenerator_1.HtmlDiffGenerator();
|
|
137
|
+
const script = gen.buildMetadataScript('<script>alert(1)</script>', {});
|
|
138
|
+
expect(script).not.toContain('<script>alert(1)</script>');
|
|
139
|
+
expect(script).toContain('<script>');
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
describe('generateUnifiedDiff', () => {
|
|
143
|
+
it('returns empty string for identical files', () => {
|
|
144
|
+
const gen = new HtmlDiffGenerator_1.HtmlDiffGenerator();
|
|
145
|
+
const file1 = path.join(tmpDir, 'same1.txt');
|
|
146
|
+
const file2 = path.join(tmpDir, 'same2.txt');
|
|
147
|
+
fs.writeFileSync(file1, 'same content');
|
|
148
|
+
fs.writeFileSync(file2, 'same content');
|
|
149
|
+
expect(gen.generateUnifiedDiff(file1, file2)).toBe('');
|
|
150
|
+
});
|
|
151
|
+
it('returns diff content for different files', () => {
|
|
152
|
+
const gen = new HtmlDiffGenerator_1.HtmlDiffGenerator();
|
|
153
|
+
const file1 = path.join(tmpDir, 'old.txt');
|
|
154
|
+
const file2 = path.join(tmpDir, 'new.txt');
|
|
155
|
+
fs.writeFileSync(file1, 'old content\n');
|
|
156
|
+
fs.writeFileSync(file2, 'new content\n');
|
|
157
|
+
const diff = gen.generateUnifiedDiff(file1, file2);
|
|
158
|
+
expect(diff.length).toBeGreaterThan(0);
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
describe('generateHtmlFromDiff', () => {
|
|
162
|
+
it('generates HTML file with diff content', () => {
|
|
163
|
+
const gen = new HtmlDiffGenerator_1.HtmlDiffGenerator();
|
|
164
|
+
const outputFile = path.join(outputDir, 'test.diff.html');
|
|
165
|
+
const diffContent = '--- a\n+++ b\n@@ -1 +1 @@\n-old\n+new\n';
|
|
166
|
+
gen.generateHtmlFromDiff(diffContent, outputFile, templatePath, {}, 'test.json');
|
|
167
|
+
expect(fs.existsSync(outputFile)).toBe(true);
|
|
168
|
+
const html = fs.readFileSync(outputFile, 'utf8');
|
|
169
|
+
expect(html).toContain('diff2html');
|
|
170
|
+
expect(html).toContain('test.json');
|
|
171
|
+
});
|
|
172
|
+
it('injects metadata script', () => {
|
|
173
|
+
const gen = new HtmlDiffGenerator_1.HtmlDiffGenerator();
|
|
174
|
+
const outputFile = path.join(outputDir, 'meta.diff.html');
|
|
175
|
+
const diffContent = '--- a\n+++ b\n';
|
|
176
|
+
gen.generateHtmlFromDiff(diffContent, outputFile, templatePath, {
|
|
177
|
+
masterCommit: 'abc',
|
|
178
|
+
branchName: 'main',
|
|
179
|
+
}, 'test.json');
|
|
180
|
+
const html = fs.readFileSync(outputFile, 'utf8');
|
|
181
|
+
expect(html).toContain('abc');
|
|
182
|
+
expect(html).toContain('main');
|
|
183
|
+
});
|
|
184
|
+
});
|
|
185
|
+
describe('generateSingleDiff', () => {
|
|
186
|
+
it('returns null when control file does not exist', () => {
|
|
187
|
+
const gen = new HtmlDiffGenerator_1.HtmlDiffGenerator();
|
|
188
|
+
fs.writeFileSync(path.join(currentDir, 'file.json'), '{}');
|
|
189
|
+
const result = gen.generateSingleDiff({
|
|
190
|
+
filename: 'file.json',
|
|
191
|
+
controlDir,
|
|
192
|
+
currentDir,
|
|
193
|
+
outputDir,
|
|
194
|
+
templatePath,
|
|
195
|
+
metadata: {},
|
|
196
|
+
});
|
|
197
|
+
expect(result).toBeNull();
|
|
198
|
+
});
|
|
199
|
+
it('returns null when current file does not exist', () => {
|
|
200
|
+
const gen = new HtmlDiffGenerator_1.HtmlDiffGenerator();
|
|
201
|
+
fs.writeFileSync(path.join(controlDir, 'file.json'), '{}');
|
|
202
|
+
const result = gen.generateSingleDiff({
|
|
203
|
+
filename: 'file.json',
|
|
204
|
+
controlDir,
|
|
205
|
+
currentDir,
|
|
206
|
+
outputDir,
|
|
207
|
+
templatePath,
|
|
208
|
+
metadata: {},
|
|
209
|
+
});
|
|
210
|
+
expect(result).toBeNull();
|
|
211
|
+
});
|
|
212
|
+
it('returns null when files are identical', () => {
|
|
213
|
+
const gen = new HtmlDiffGenerator_1.HtmlDiffGenerator();
|
|
214
|
+
fs.writeFileSync(path.join(controlDir, 'file.json'), '{"same": true}');
|
|
215
|
+
fs.writeFileSync(path.join(currentDir, 'file.json'), '{"same": true}');
|
|
216
|
+
const result = gen.generateSingleDiff({
|
|
217
|
+
filename: 'file.json',
|
|
218
|
+
controlDir,
|
|
219
|
+
currentDir,
|
|
220
|
+
outputDir,
|
|
221
|
+
templatePath,
|
|
222
|
+
metadata: {},
|
|
223
|
+
});
|
|
224
|
+
expect(result).toBeNull();
|
|
225
|
+
});
|
|
226
|
+
it('generates diff HTML when files differ', () => {
|
|
227
|
+
const gen = new HtmlDiffGenerator_1.HtmlDiffGenerator();
|
|
228
|
+
fs.writeFileSync(path.join(controlDir, 'file.json'), '{"size": 100}\n');
|
|
229
|
+
fs.writeFileSync(path.join(currentDir, 'file.json'), '{"size": 200}\n');
|
|
230
|
+
const result = gen.generateSingleDiff({
|
|
231
|
+
filename: 'file.json',
|
|
232
|
+
controlDir,
|
|
233
|
+
currentDir,
|
|
234
|
+
outputDir,
|
|
235
|
+
templatePath,
|
|
236
|
+
metadata: {},
|
|
237
|
+
});
|
|
238
|
+
expect(result).not.toBeNull();
|
|
239
|
+
expect(fs.existsSync(result)).toBe(true);
|
|
240
|
+
});
|
|
241
|
+
});
|
|
242
|
+
describe('generateDiffs', () => {
|
|
243
|
+
it('generates diffs for all files in current directory', () => {
|
|
244
|
+
const gen = new HtmlDiffGenerator_1.HtmlDiffGenerator();
|
|
245
|
+
fs.writeFileSync(path.join(controlDir, 'a.json'), '{"v":1}\n');
|
|
246
|
+
fs.writeFileSync(path.join(currentDir, 'a.json'), '{"v":2}\n');
|
|
247
|
+
fs.writeFileSync(path.join(controlDir, 'b.txt'), 'old\n');
|
|
248
|
+
fs.writeFileSync(path.join(currentDir, 'b.txt'), 'new\n');
|
|
249
|
+
const files = gen.generateDiffs({
|
|
250
|
+
controlDir,
|
|
251
|
+
currentDir,
|
|
252
|
+
outputDir,
|
|
253
|
+
templatePath,
|
|
254
|
+
});
|
|
255
|
+
expect(files.length).toBe(2);
|
|
256
|
+
});
|
|
257
|
+
it('creates output directory if needed', () => {
|
|
258
|
+
const gen = new HtmlDiffGenerator_1.HtmlDiffGenerator();
|
|
259
|
+
const newOutputDir = path.join(tmpDir, 'new-output');
|
|
260
|
+
gen.generateDiffs({
|
|
261
|
+
controlDir,
|
|
262
|
+
currentDir,
|
|
263
|
+
outputDir: newOutputDir,
|
|
264
|
+
templatePath,
|
|
265
|
+
});
|
|
266
|
+
expect(fs.existsSync(newOutputDir)).toBe(true);
|
|
267
|
+
});
|
|
268
|
+
it('returns empty array when no diffs found', () => {
|
|
269
|
+
const gen = new HtmlDiffGenerator_1.HtmlDiffGenerator();
|
|
270
|
+
// Same content in both dirs
|
|
271
|
+
fs.writeFileSync(path.join(controlDir, 'same.json'), '{}');
|
|
272
|
+
fs.writeFileSync(path.join(currentDir, 'same.json'), '{}');
|
|
273
|
+
const files = gen.generateDiffs({
|
|
274
|
+
controlDir,
|
|
275
|
+
currentDir,
|
|
276
|
+
outputDir,
|
|
277
|
+
templatePath,
|
|
278
|
+
});
|
|
279
|
+
expect(files).toEqual([]);
|
|
280
|
+
});
|
|
281
|
+
});
|
|
282
|
+
});
|
|
283
|
+
//# sourceMappingURL=HtmlDiffGenerator.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HtmlDiffGenerator.test.js","sourceRoot":"","sources":["../../src/__tests__/HtmlDiffGenerator.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAC7B,4DAAyD;AAEzD,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAE7D,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;QAiBlB,CAAC;IAEP,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,GAAG,GAAG,IAAI,qCAAiB,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1C,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,GAAG,GAAG,IAAI,qCAAiB,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QAC1F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,GAAG,GAAG,IAAI,qCAAiB,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,GAAG,GAAG,IAAI,qCAAiB,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC5C,GAAG,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,GAAG,GAAG,IAAI,qCAAiB,EAAE,CAAC;YACpC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;YACxD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,GAAG,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YAClD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,GAAG,GAAG,IAAI,qCAAiB,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,GAAG,GAAG,IAAI,qCAAiB,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,GAAG,CAAC,mBAAmB,CAAC,aAAa,EAAE;gBACpD,YAAY,EAAE,SAAS;gBACvB,UAAU,EAAE,cAAc;gBAC1B,aAAa,EAAE,SAAS;aACzB,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;YAChC,MAAM,GAAG,GAAG,IAAI,qCAAiB,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,GAAG,CAAC,mBAAmB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAClC,MAAM,GAAG,GAAG,IAAI,qCAAiB,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,GAAG,CAAC,mBAAmB,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;YACxE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;YAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,GAAG,GAAG,IAAI,qCAAiB,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAC7C,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;YACxC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;YACxC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,GAAG,GAAG,IAAI,qCAAiB,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC3C,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;YACzC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,GAAG,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,GAAG,GAAG,IAAI,qCAAiB,EAAE,CAAC;YACpC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAC1D,MAAM,WAAW,GAAG,yCAAyC,CAAC;YAE9D,GAAG,CAAC,oBAAoB,CAAC,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;YAEjF,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;YACjC,MAAM,GAAG,GAAG,IAAI,qCAAiB,EAAE,CAAC;YACpC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAC1D,MAAM,WAAW,GAAG,gBAAgB,CAAC;YAErC,GAAG,CAAC,oBAAoB,CAAC,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE;gBAC9D,YAAY,EAAE,KAAK;gBACnB,UAAU,EAAE,MAAM;aACnB,EAAE,WAAW,CAAC,CAAC;YAEhB,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,GAAG,GAAG,IAAI,qCAAiB,EAAE,CAAC;YACpC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;YAE3D,MAAM,MAAM,GAAG,GAAG,CAAC,kBAAkB,CAAC;gBACpC,QAAQ,EAAE,WAAW;gBACrB,UAAU;gBACV,UAAU;gBACV,SAAS;gBACT,YAAY;gBACZ,QAAQ,EAAE,EAAE;aACb,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,GAAG,GAAG,IAAI,qCAAiB,EAAE,CAAC;YACpC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;YAE3D,MAAM,MAAM,GAAG,GAAG,CAAC,kBAAkB,CAAC;gBACpC,QAAQ,EAAE,WAAW;gBACrB,UAAU;gBACV,UAAU;gBACV,SAAS;gBACT,YAAY;gBACZ,QAAQ,EAAE,EAAE;aACb,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,GAAG,GAAG,IAAI,qCAAiB,EAAE,CAAC;YACpC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC;YACvE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,gBAAgB,CAAC,CAAC;YAEvE,MAAM,MAAM,GAAG,GAAG,CAAC,kBAAkB,CAAC;gBACpC,QAAQ,EAAE,WAAW;gBACrB,UAAU;gBACV,UAAU;gBACV,SAAS;gBACT,YAAY;gBACZ,QAAQ,EAAE,EAAE;aACb,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,GAAG,GAAG,IAAI,qCAAiB,EAAE,CAAC;YACpC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,iBAAiB,CAAC,CAAC;YACxE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,iBAAiB,CAAC,CAAC;YAExE,MAAM,MAAM,GAAG,GAAG,CAAC,kBAAkB,CAAC;gBACpC,QAAQ,EAAE,WAAW;gBACrB,UAAU;gBACV,UAAU;gBACV,SAAS;gBACT,YAAY;gBACZ,QAAQ,EAAE,EAAE;aACb,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,MAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,GAAG,GAAG,IAAI,qCAAiB,EAAE,CAAC;YACpC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC;YAC/D,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC;YAC/D,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;YAC1D,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;YAE1D,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC;gBAC9B,UAAU;gBACV,UAAU;gBACV,SAAS;gBACT,YAAY;aACb,CAAC,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,GAAG,GAAG,IAAI,qCAAiB,EAAE,CAAC;YACpC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAErD,GAAG,CAAC,aAAa,CAAC;gBAChB,UAAU;gBACV,UAAU;gBACV,SAAS,EAAE,YAAY;gBACvB,YAAY;aACb,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,GAAG,GAAG,IAAI,qCAAiB,EAAE,CAAC;YACpC,4BAA4B;YAC5B,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;YAC3D,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;YAE3D,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC;gBAC9B,UAAU;gBACV,UAAU;gBACV,SAAS;gBACT,YAAY;aACb,CAAC,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RegressionDetector.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/RegressionDetector.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const RegressionDetector_1 = require("../RegressionDetector");
|
|
4
|
+
describe('defaultPolicy', () => {
|
|
5
|
+
it('returns shouldFail: true for INCREASED_SIZE', () => {
|
|
6
|
+
const regression = {
|
|
7
|
+
componentName: 'App',
|
|
8
|
+
type: RegressionDetector_1.RegressionType.INCREASED_SIZE,
|
|
9
|
+
};
|
|
10
|
+
const result = (0, RegressionDetector_1.defaultPolicy)(regression);
|
|
11
|
+
expect(result.shouldFail).toBe(true);
|
|
12
|
+
expect(result.message).toContain('increasedSize');
|
|
13
|
+
expect(result.message).toContain('App');
|
|
14
|
+
});
|
|
15
|
+
it('returns shouldFail: true for NEW_COMPONENT', () => {
|
|
16
|
+
const regression = {
|
|
17
|
+
componentName: 'NewWidget',
|
|
18
|
+
type: RegressionDetector_1.RegressionType.NEW_COMPONENT,
|
|
19
|
+
};
|
|
20
|
+
const result = (0, RegressionDetector_1.defaultPolicy)(regression);
|
|
21
|
+
expect(result.shouldFail).toBe(true);
|
|
22
|
+
expect(result.message).toContain('newComponent');
|
|
23
|
+
expect(result.message).toContain('NewWidget');
|
|
24
|
+
});
|
|
25
|
+
it('returns shouldFail: true for REMOVED_COMPONENT', () => {
|
|
26
|
+
const regression = {
|
|
27
|
+
componentName: 'OldWidget',
|
|
28
|
+
type: RegressionDetector_1.RegressionType.REMOVED_COMPONENT,
|
|
29
|
+
};
|
|
30
|
+
const result = (0, RegressionDetector_1.defaultPolicy)(regression);
|
|
31
|
+
expect(result.shouldFail).toBe(true);
|
|
32
|
+
expect(result.message).toContain('removedComponent');
|
|
33
|
+
expect(result.message).toContain('OldWidget');
|
|
34
|
+
});
|
|
35
|
+
it('returns shouldFail: true for INCREASED_CHUNKS_COUNT', () => {
|
|
36
|
+
const regression = {
|
|
37
|
+
componentName: 'Header',
|
|
38
|
+
type: RegressionDetector_1.RegressionType.INCREASED_CHUNKS_COUNT,
|
|
39
|
+
};
|
|
40
|
+
const result = (0, RegressionDetector_1.defaultPolicy)(regression);
|
|
41
|
+
expect(result.shouldFail).toBe(true);
|
|
42
|
+
expect(result.message).toContain('increasedChunksCount');
|
|
43
|
+
expect(result.message).toContain('Header');
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
describe('RegressionDetector', () => {
|
|
47
|
+
describe('createNewComponentRegression', () => {
|
|
48
|
+
it('creates regression for new component', () => {
|
|
49
|
+
const detector = new RegressionDetector_1.RegressionDetector();
|
|
50
|
+
const component = {
|
|
51
|
+
name: 'NewWidget',
|
|
52
|
+
chunksCount: 3,
|
|
53
|
+
gzipSizeKb: 50,
|
|
54
|
+
brotliSizeKb: 40,
|
|
55
|
+
};
|
|
56
|
+
const regression = detector.createNewComponentRegression(component);
|
|
57
|
+
expect(regression.componentName).toBe('NewWidget');
|
|
58
|
+
expect(regression.type).toBe(RegressionDetector_1.RegressionType.NEW_COMPONENT);
|
|
59
|
+
expect(regression.sizeKb).toBe(50);
|
|
60
|
+
expect(regression.chunksCount).toBe(3);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
describe('createRemovedComponentRegression', () => {
|
|
64
|
+
it('creates regression for removed component', () => {
|
|
65
|
+
const detector = new RegressionDetector_1.RegressionDetector();
|
|
66
|
+
const component = {
|
|
67
|
+
name: 'OldWidget',
|
|
68
|
+
chunksCount: 2,
|
|
69
|
+
gzipSizeKb: '30.00',
|
|
70
|
+
brotliSizeKb: '25.00',
|
|
71
|
+
};
|
|
72
|
+
const regression = detector.createRemovedComponentRegression(component);
|
|
73
|
+
expect(regression.componentName).toBe('OldWidget');
|
|
74
|
+
expect(regression.type).toBe(RegressionDetector_1.RegressionType.REMOVED_COMPONENT);
|
|
75
|
+
expect(regression.sizeKb).toBe(30);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
describe('createIncreasedSizeRegression', () => {
|
|
79
|
+
it('creates regression for size increase', () => {
|
|
80
|
+
const detector = new RegressionDetector_1.RegressionDetector();
|
|
81
|
+
const comparison = {
|
|
82
|
+
name: 'App',
|
|
83
|
+
actualSizeKb: 115,
|
|
84
|
+
expectedSizeKb: 100,
|
|
85
|
+
sizeDiffKb: 15,
|
|
86
|
+
actualChunksCount: 2,
|
|
87
|
+
expectedChunksCount: 2,
|
|
88
|
+
};
|
|
89
|
+
const regression = detector.createIncreasedSizeRegression(comparison);
|
|
90
|
+
expect(regression.componentName).toBe('App');
|
|
91
|
+
expect(regression.type).toBe(RegressionDetector_1.RegressionType.INCREASED_SIZE);
|
|
92
|
+
expect(regression.sizeDiffKb).toBe(15);
|
|
93
|
+
expect(regression.expectedSizeKb).toBe(100);
|
|
94
|
+
expect(regression.actualSizeKb).toBe(115);
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
describe('createIncreasedChunksCountRegression', () => {
|
|
98
|
+
it('creates regression for chunks count increase', () => {
|
|
99
|
+
const detector = new RegressionDetector_1.RegressionDetector();
|
|
100
|
+
const comparison = {
|
|
101
|
+
name: 'App',
|
|
102
|
+
actualSizeKb: 100,
|
|
103
|
+
expectedSizeKb: 100,
|
|
104
|
+
sizeDiffKb: 0,
|
|
105
|
+
actualChunksCount: 5,
|
|
106
|
+
expectedChunksCount: 3,
|
|
107
|
+
};
|
|
108
|
+
const regression = detector.createIncreasedChunksCountRegression(comparison);
|
|
109
|
+
expect(regression.componentName).toBe('App');
|
|
110
|
+
expect(regression.type).toBe(RegressionDetector_1.RegressionType.INCREASED_CHUNKS_COUNT);
|
|
111
|
+
expect(regression.actualChunksCount).toBe(5);
|
|
112
|
+
expect(regression.expectedChunksCount).toBe(3);
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
describe('detectRegressions', () => {
|
|
116
|
+
it('detects all types of regressions', () => {
|
|
117
|
+
const detector = new RegressionDetector_1.RegressionDetector();
|
|
118
|
+
const comparisonResult = {
|
|
119
|
+
newComponents: [
|
|
120
|
+
{ name: 'NewComp', chunksCount: 1, gzipSizeKb: 10, brotliSizeKb: 8 },
|
|
121
|
+
],
|
|
122
|
+
removedComponents: [
|
|
123
|
+
{ name: 'OldComp', chunksCount: 1, gzipSizeKb: '20.00', brotliSizeKb: '15.00' },
|
|
124
|
+
],
|
|
125
|
+
sizeChanges: [
|
|
126
|
+
{ name: 'App', actualSizeKb: 115, expectedSizeKb: 100, sizeDiffKb: 15, actualChunksCount: 2, expectedChunksCount: 2 },
|
|
127
|
+
],
|
|
128
|
+
chunksCountIncreases: [
|
|
129
|
+
{ name: 'Header', actualSizeKb: 50, expectedSizeKb: 50, sizeDiffKb: 0, actualChunksCount: 4, expectedChunksCount: 2 },
|
|
130
|
+
],
|
|
131
|
+
};
|
|
132
|
+
const regressions = detector.detectRegressions(comparisonResult);
|
|
133
|
+
expect(regressions).toHaveLength(4);
|
|
134
|
+
const types = regressions.map(r => r.type);
|
|
135
|
+
expect(types).toContain(RegressionDetector_1.RegressionType.NEW_COMPONENT);
|
|
136
|
+
expect(types).toContain(RegressionDetector_1.RegressionType.REMOVED_COMPONENT);
|
|
137
|
+
expect(types).toContain(RegressionDetector_1.RegressionType.INCREASED_SIZE);
|
|
138
|
+
expect(types).toContain(RegressionDetector_1.RegressionType.INCREASED_CHUNKS_COUNT);
|
|
139
|
+
});
|
|
140
|
+
it('returns empty array when no regressions', () => {
|
|
141
|
+
const detector = new RegressionDetector_1.RegressionDetector();
|
|
142
|
+
const comparisonResult = {
|
|
143
|
+
newComponents: [],
|
|
144
|
+
removedComponents: [],
|
|
145
|
+
sizeChanges: [],
|
|
146
|
+
chunksCountIncreases: [],
|
|
147
|
+
};
|
|
148
|
+
const regressions = detector.detectRegressions(comparisonResult);
|
|
149
|
+
expect(regressions).toHaveLength(0);
|
|
150
|
+
});
|
|
151
|
+
it('handles multiple regressions of same type', () => {
|
|
152
|
+
const detector = new RegressionDetector_1.RegressionDetector();
|
|
153
|
+
const comparisonResult = {
|
|
154
|
+
newComponents: [
|
|
155
|
+
{ name: 'A', chunksCount: 1, gzipSizeKb: 5, brotliSizeKb: 4 },
|
|
156
|
+
{ name: 'B', chunksCount: 2, gzipSizeKb: 10, brotliSizeKb: 8 },
|
|
157
|
+
],
|
|
158
|
+
removedComponents: [],
|
|
159
|
+
sizeChanges: [],
|
|
160
|
+
chunksCountIncreases: [],
|
|
161
|
+
};
|
|
162
|
+
const regressions = detector.detectRegressions(comparisonResult);
|
|
163
|
+
expect(regressions).toHaveLength(2);
|
|
164
|
+
expect(regressions[0].componentName).toBe('A');
|
|
165
|
+
expect(regressions[1].componentName).toBe('B');
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
describe('evaluateRegression', () => {
|
|
169
|
+
it('uses default policy to evaluate', () => {
|
|
170
|
+
const detector = new RegressionDetector_1.RegressionDetector();
|
|
171
|
+
const regression = {
|
|
172
|
+
componentName: 'App',
|
|
173
|
+
type: RegressionDetector_1.RegressionType.INCREASED_SIZE,
|
|
174
|
+
};
|
|
175
|
+
const result = detector.evaluateRegression(regression);
|
|
176
|
+
expect(result.shouldFail).toBe(true);
|
|
177
|
+
});
|
|
178
|
+
it('uses custom policy when provided', () => {
|
|
179
|
+
const detector = new RegressionDetector_1.RegressionDetector({
|
|
180
|
+
policy: () => ({ shouldFail: false, message: 'Allowed' }),
|
|
181
|
+
});
|
|
182
|
+
const regression = {
|
|
183
|
+
componentName: 'App',
|
|
184
|
+
type: RegressionDetector_1.RegressionType.INCREASED_SIZE,
|
|
185
|
+
};
|
|
186
|
+
const result = detector.evaluateRegression(regression);
|
|
187
|
+
expect(result.shouldFail).toBe(false);
|
|
188
|
+
expect(result.message).toBe('Allowed');
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
describe('evaluateAll', () => {
|
|
192
|
+
it('splits regressions into failures and warnings', () => {
|
|
193
|
+
const detector = new RegressionDetector_1.RegressionDetector({
|
|
194
|
+
policy: (regression) => ({
|
|
195
|
+
shouldFail: regression.type === RegressionDetector_1.RegressionType.INCREASED_SIZE,
|
|
196
|
+
message: 'evaluated',
|
|
197
|
+
}),
|
|
198
|
+
});
|
|
199
|
+
const regressions = [
|
|
200
|
+
{ componentName: 'App', type: RegressionDetector_1.RegressionType.INCREASED_SIZE },
|
|
201
|
+
{ componentName: 'NewComp', type: RegressionDetector_1.RegressionType.NEW_COMPONENT },
|
|
202
|
+
{ componentName: 'Header', type: RegressionDetector_1.RegressionType.INCREASED_SIZE },
|
|
203
|
+
];
|
|
204
|
+
const result = detector.evaluateAll(regressions);
|
|
205
|
+
expect(result.failures).toHaveLength(2);
|
|
206
|
+
expect(result.warnings).toHaveLength(1);
|
|
207
|
+
expect(result.warnings[0].componentName).toBe('NewComp');
|
|
208
|
+
});
|
|
209
|
+
it('attaches policy message to regressions', () => {
|
|
210
|
+
const detector = new RegressionDetector_1.RegressionDetector({
|
|
211
|
+
policy: () => ({ shouldFail: true, message: 'Custom message' }),
|
|
212
|
+
});
|
|
213
|
+
const regressions = [
|
|
214
|
+
{ componentName: 'App', type: RegressionDetector_1.RegressionType.INCREASED_SIZE },
|
|
215
|
+
];
|
|
216
|
+
detector.evaluateAll(regressions);
|
|
217
|
+
expect(regressions[0].policyMessage).toBe('Custom message');
|
|
218
|
+
});
|
|
219
|
+
it('returns empty arrays for empty input', () => {
|
|
220
|
+
const detector = new RegressionDetector_1.RegressionDetector();
|
|
221
|
+
const result = detector.evaluateAll([]);
|
|
222
|
+
expect(result.failures).toHaveLength(0);
|
|
223
|
+
expect(result.warnings).toHaveLength(0);
|
|
224
|
+
});
|
|
225
|
+
});
|
|
226
|
+
});
|
|
227
|
+
//# sourceMappingURL=RegressionDetector.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RegressionDetector.test.js","sourceRoot":"","sources":["../../src/__tests__/RegressionDetector.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Reporter.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/Reporter.test.ts"],"names":[],"mappings":""}
|