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