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",
 | 
						|
		]
 | 
						|
	`);
 | 
						|
	});
 | 
						|
});
 |