mirror of https://github.com/webpack/webpack.git
				
				
				
			
		
			
	
	
		
			85 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
		
		
			
		
	
	
			85 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
|  | "use strict"; | ||
|  | 
 | ||
|  | const smartGrouping = require("../lib/util/smartGrouping"); | ||
|  | 
 | ||
|  | describe("util/smartGrouping", () => { | ||
|  | 	it("should group correctly", () => { | ||
|  | 		const groupConfigs = [ | ||
|  | 			{ | ||
|  | 				getKeys(item) { | ||
|  | 					return item.match(/\d+/g); | ||
|  | 				}, | ||
|  | 				createGroup(key, items) { | ||
|  | 					return { | ||
|  | 						name: `has number ${key}`, | ||
|  | 						items | ||
|  | 					}; | ||
|  | 				} | ||
|  | 			}, | ||
|  | 			{ | ||
|  | 				getKeys(item) { | ||
|  | 					return item.match(/\w+/g); | ||
|  | 				}, | ||
|  | 				createGroup(key, items) { | ||
|  | 					return { | ||
|  | 						name: `has word ${key}`, | ||
|  | 						items | ||
|  | 					}; | ||
|  | 				} | ||
|  | 			} | ||
|  | 		]; | ||
|  | 		expect( | ||
|  | 			smartGrouping( | ||
|  | 				[ | ||
|  | 					"hello world a", | ||
|  | 					"hello world b 2", | ||
|  | 					"hello world c", | ||
|  | 					"hello world d", | ||
|  | 					"hello test", | ||
|  | 					"hello more test", | ||
|  | 					"more test", | ||
|  | 					"more tests", | ||
|  | 					"1 2 3", | ||
|  | 					"2 3 4", | ||
|  | 					"3 4 5" | ||
|  | 				], | ||
|  | 				groupConfigs | ||
|  | 			) | ||
|  | 		).toMatchInlineSnapshot(`
 | ||
|  | 		Array [ | ||
|  | 		  Object { | ||
|  | 		    "items": Array [ | ||
|  | 		      Object { | ||
|  | 		        "items": Array [ | ||
|  | 		          "hello world a", | ||
|  | 		          "hello world b 2", | ||
|  | 		          "hello world c", | ||
|  | 		          "hello world d", | ||
|  | 		        ], | ||
|  | 		        "name": "has word world", | ||
|  | 		      }, | ||
|  | 		      Object { | ||
|  | 		        "items": Array [ | ||
|  | 		          "hello test", | ||
|  | 		          "hello more test", | ||
|  | 		        ], | ||
|  | 		        "name": "has word test", | ||
|  | 		      }, | ||
|  | 		    ], | ||
|  | 		    "name": "has word hello", | ||
|  | 		  }, | ||
|  | 		  Object { | ||
|  | 		    "items": Array [ | ||
|  | 		      "1 2 3", | ||
|  | 		      "2 3 4", | ||
|  | 		      "3 4 5", | ||
|  | 		    ], | ||
|  | 		    "name": "has number 3", | ||
|  | 		  }, | ||
|  | 		  "more test", | ||
|  | 		  "more tests", | ||
|  | 		] | ||
|  | 	`);
 | ||
|  | 	}); | ||
|  | }); |