Introduces a new Bazel test that allows us to inspect what source-files contribute to a given bundled file and how much bytes they contribute to the bundle size. Additionally the size-tracking rule groups the size data by directories. This allows us to compare size changes in the scope of directories. e.g. a lot of files in a directory could increase slightly in size, but in the directory scope the size change could be significant and needs to be reported by the test target. Resolves FW-1278 PR Close #30070
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| /**
 | |
|  * @license
 | |
|  * Copyright Google Inc. All Rights Reserved.
 | |
|  *
 | |
|  * Use of this source code is governed by an MIT-style license that can be
 | |
|  * found in the LICENSE file at https://angular.io/license
 | |
|  */
 | |
| 
 | |
| import {FileSizeData, omitCommonPathPrefix, sortFileSizeData} from './file_size_data';
 | |
| 
 | |
| describe('file size data', () => {
 | |
|   it('should be able to properly omit the common path prefix', () => {
 | |
|     const data: FileSizeData = {
 | |
|       unmapped: 0,
 | |
|       files: {
 | |
|         size: 3,
 | |
|         'parent/': {
 | |
|           size: 3,
 | |
|           'parent2/': {
 | |
|             size: 3,
 | |
|             'a/': {
 | |
|               size: 3,
 | |
|               'file.ts': 3,
 | |
|             },
 | |
|             'b/': {
 | |
|               size: 0,
 | |
|             }
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     };
 | |
| 
 | |
|     expect(omitCommonPathPrefix(data.files)).toEqual({
 | |
|       size: 3,
 | |
|       'a/': {
 | |
|         size: 3,
 | |
|         'file.ts': 3,
 | |
|       },
 | |
|       'b/': {
 | |
|         size: 0,
 | |
|       }
 | |
|     });
 | |
|   });
 | |
| 
 | |
|   it('should be able to properly sort file size data in alphabetical order', () => {
 | |
|     const data: FileSizeData = {
 | |
|       unmapped: 0,
 | |
|       files: {
 | |
|         size: 7,
 | |
|         'b/': {'c.ts': 3, 'a.ts': 3, size: 6},
 | |
|         'a/': {'nested/': {size: 1, 'a.ts': 1}, size: 1},
 | |
|       }
 | |
|     };
 | |
| 
 | |
|     expect(sortFileSizeData(data)).toEqual({
 | |
|       unmapped: 0,
 | |
|       files: {
 | |
|         size: 7,
 | |
|         'a/': {size: 1, 'nested/': {size: 1, 'a.ts': 1}},
 | |
|         'b/': {size: 6, 'a.ts': 3, 'c.ts': 3},
 | |
|       },
 | |
|     });
 | |
|   });
 | |
| });
 |