Skip to content

Commit 67bdfd7

Browse files
committed
test/update commit order
Signed-off-by: shmck <[email protected]>
1 parent 8ba4877 commit 67bdfd7

File tree

2 files changed

+91
-43
lines changed

2 files changed

+91
-43
lines changed

src/utils/validateCommits.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ export function validateCommitOrder(positions: string[]): boolean {
1313
current = { level: 0, step: 0 };
1414
return;
1515
} else {
16-
const levelMatch = position.match(/^L([0-9]+)Q?$/);
17-
const stepMatch = position.match(/^L([0-9]+)S([0-9]+)[Q|A]?$/);
16+
const levelMatch = position.match(/^L?([0-9]+)Q?$/);
17+
const stepMatch = position.match(/^L?([0-9]+)[S|\.]([0-9]+)[Q|A]?$/);
1818
if (levelMatch) {
1919
// allows next level or step
2020
const [_, levelString] = levelMatch;

tests/commitOrder.test.ts

+89-41
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,95 @@
11
import { validateCommitOrder } from "../src/utils/validateCommits";
22

33
describe("commitOrder", () => {
4-
it("should return true if order is valid", () => {
5-
const positions = ["INIT", "1", "1.1", "1.2", "2", "2.1"];
6-
const result = validateCommitOrder(positions);
7-
expect(result).toBe(true);
4+
describe("#.# format", () => {
5+
it("should return true if order is valid", () => {
6+
const positions = ["INIT", "1", "1.1", "1.2", "2", "2.1"];
7+
const result = validateCommitOrder(positions);
8+
expect(result).toBe(true);
9+
});
10+
it("should return true if valid with duplicates", () => {
11+
const positions = [
12+
"INIT",
13+
"INIT",
14+
"1",
15+
"1",
16+
"1.1",
17+
"1.1",
18+
"1.2",
19+
"1.2",
20+
"2",
21+
"2",
22+
"2.1",
23+
"2.1",
24+
];
25+
const result = validateCommitOrder(positions);
26+
expect(result).toBe(true);
27+
});
28+
it("should return false if INIT is out of order", () => {
29+
const positions = ["INIT", "1", "1.1", "1.2", "INIT", "2", "2.1"];
30+
const result = validateCommitOrder(positions);
31+
expect(result).toBe(false);
32+
});
33+
it("should return false if level after step is out of order", () => {
34+
const positions = ["INIT", "1", "1.1", "1.2", "2.1", "2"];
35+
const result = validateCommitOrder(positions);
36+
expect(result).toBe(false);
37+
});
38+
it("should return false if level is out of order", () => {
39+
const positions = ["INIT", "1", "L3", "2"];
40+
const result = validateCommitOrder(positions);
41+
expect(result).toBe(false);
42+
});
43+
it("should return false if step is out of order", () => {
44+
const positions = ["INIT", "1", "1.1", "1.3", "1.2"];
45+
const result = validateCommitOrder(positions);
46+
expect(result).toBe(false);
47+
});
848
});
9-
it("should return true if valid with duplicates", () => {
10-
const positions = [
11-
"INIT",
12-
"INIT",
13-
"1",
14-
"1",
15-
"1.1",
16-
"1.1",
17-
"1.2",
18-
"1.2",
19-
"2",
20-
"2",
21-
"2.1",
22-
"2.1",
23-
];
24-
const result = validateCommitOrder(positions);
25-
expect(result).toBe(true);
26-
});
27-
it("should return false if INIT is out of order", () => {
28-
const positions = ["INIT", "1", "1.1", "1.2", "INIT", "2", "2.1"];
29-
const result = validateCommitOrder(positions);
30-
expect(result).toBe(false);
31-
});
32-
it("should return false if level after step is out of order", () => {
33-
const positions = ["INIT", "1", "1.1", "1.2", "2.1", "2"];
34-
const result = validateCommitOrder(positions);
35-
expect(result).toBe(false);
36-
});
37-
it("should return false if level is out of order", () => {
38-
const positions = ["INIT", "1", "L3", "2"];
39-
const result = validateCommitOrder(positions);
40-
expect(result).toBe(false);
41-
});
42-
it("should return false if step is out of order", () => {
43-
const positions = ["INIT", "1", "1.1", "1.3", "1.2"];
44-
const result = validateCommitOrder(positions);
45-
expect(result).toBe(false);
49+
// @deprecated
50+
describe("L#S# format", () => {
51+
it("should return true if order is valid", () => {
52+
const positions = ["INIT", "L1", "L1S1", "L1S2", "L2", "L2S1"];
53+
const result = validateCommitOrder(positions);
54+
expect(result).toBe(true);
55+
});
56+
it("should return true if valid with duplicates", () => {
57+
const positions = [
58+
"INIT",
59+
"INIT",
60+
"L1",
61+
"L1",
62+
"L1S1",
63+
"L1S1",
64+
"L1S2",
65+
"L1S2",
66+
"L2",
67+
"L2",
68+
"L2S1",
69+
"L2S1",
70+
];
71+
const result = validateCommitOrder(positions);
72+
expect(result).toBe(true);
73+
});
74+
it("should return false if INIT is out of order", () => {
75+
const positions = ["INIT", "L1", "L1S1", "L1S2", "INIT", "L2", "L2S1"];
76+
const result = validateCommitOrder(positions);
77+
expect(result).toBe(false);
78+
});
79+
it("should return false if level after step is out of order", () => {
80+
const positions = ["INIT", "L1", "L1S1", "L1S2", "L2S1", "L2"];
81+
const result = validateCommitOrder(positions);
82+
expect(result).toBe(false);
83+
});
84+
it("should return false if level is out of order", () => {
85+
const positions = ["INIT", "L1", "L3", "L2"];
86+
const result = validateCommitOrder(positions);
87+
expect(result).toBe(false);
88+
});
89+
it("should return false if step is out of order", () => {
90+
const positions = ["INIT", "L1", "L1S1", "L1S3", "L1S2"];
91+
const result = validateCommitOrder(positions);
92+
expect(result).toBe(false);
93+
});
4694
});
4795
});

0 commit comments

Comments
 (0)