@@ -4,6 +4,37 @@ import (
4
4
"testing"
5
5
)
6
6
7
+ func TestCleanDir (t * testing.T ) {
8
+ cases := []struct {
9
+ dir string
10
+ expectedCleanDir string
11
+ }{
12
+ {dir : "" , expectedCleanDir : "" },
13
+ {dir : "." , expectedCleanDir : "" },
14
+ {dir : "/" , expectedCleanDir : "/" },
15
+ {dir : "./" , expectedCleanDir : "" },
16
+ {dir : ".test" , expectedCleanDir : ".test/" },
17
+ {dir : ".test/" , expectedCleanDir : ".test/" },
18
+ {dir : "test" , expectedCleanDir : "test/" },
19
+ {dir : "test/" , expectedCleanDir : "test/" },
20
+ {dir : "./test" , expectedCleanDir : "test/" },
21
+ {dir : "./test/" , expectedCleanDir : "test/" },
22
+ {dir : "test/test" , expectedCleanDir : "test/test/" },
23
+ {dir : "test/test/" , expectedCleanDir : "test/test/" },
24
+ {dir : "./test/test" , expectedCleanDir : "test/test/" },
25
+ {dir : "./test/test/" , expectedCleanDir : "test/test/" },
26
+ }
27
+
28
+ for _ , c := range cases {
29
+ t .Run (c .dir , func (t * testing.T ) {
30
+ cleanedDir := cleanDir (c .dir )
31
+ if cleanedDir != c .expectedCleanDir {
32
+ t .Error ("Incorrectly cleaned dir: " + cleanedDir + " != " + c .expectedCleanDir )
33
+ }
34
+ })
35
+ }
36
+ }
37
+
7
38
func TestNextSeq (t * testing.T ) {
8
39
cases := []struct {
9
40
name string
@@ -13,19 +44,23 @@ func TestNextSeq(t *testing.T) {
13
44
expected string
14
45
expectedErrStr string
15
46
}{
16
- {"Bad digits" , []string {}, "migrationDir" , 0 , "" , "Digits must be positive" },
17
- {"Single digit initialize" , []string {}, "migrationDir" , 1 , "1" , "" },
18
- {"Single digit malformed" , []string {"bad" }, "migrationDir" , 1 , "" , "Malformed migration filename: bad" },
19
- {"Single digit no int" , []string {"bad_bad" }, "migrationDir" , 1 , "" , "strconv.Atoi: parsing \" bad\" : invalid syntax" },
20
- {"Single digit negative seq" , []string {"-5_test" }, "migrationDir" , 1 , "" , "Next sequence number must be positive" },
21
- {"Single digit increment" , []string {"3_test" , "4_test" }, "migrationDir" , 1 , "5" , "" },
22
- {"Single digit overflow" , []string {"9_test" }, "migrationDir" , 1 , "" , "Next sequence number 10 too large. At most 1 digits are allowed" },
23
- {"Zero-pad initialize" , []string {}, "migrationDir" , 6 , "000001" , "" },
24
- {"Zero-pad malformed" , []string {"bad" }, "migrationDir" , 6 , "" , "Malformed migration filename: bad" },
25
- {"Zero-pad no int" , []string {"bad_bad" }, "migrationDir" , 6 , "" , "strconv.Atoi: parsing \" bad\" : invalid syntax" },
26
- {"Zero-pad negative seq" , []string {"-000005_test" }, "migrationDir" , 6 , "" , "Next sequence number must be positive" },
27
- {"Zero-pad increment" , []string {"000003_test" , "000004_test" }, "migrationDir" , 6 , "000005" , "" },
28
- {"Zero-pad overflow" , []string {"999999_test" }, "migrationDir" , 6 , "" , "Next sequence number 1000000 too large. At most 6 digits are allowed" },
47
+ {"Bad digits" , []string {}, "migrationDir/" , 0 , "" , "Digits must be positive" },
48
+ {"Single digit initialize" , []string {}, "migrationDir/" , 1 , "1" , "" },
49
+ {"Single digit malformed" , []string {"bad" }, "migrationDir/" , 1 , "" , "Malformed migration filename: bad" },
50
+ {"Single digit no int" , []string {"bad_bad" }, "migrationDir/" , 1 , "" , "strconv.Atoi: parsing \" bad\" : invalid syntax" },
51
+ {"Single digit negative seq" , []string {"-5_test" }, "migrationDir/" , 1 , "" , "Next sequence number must be positive" },
52
+ {"Single digit increment" , []string {"3_test" , "4_test" }, "migrationDir/" , 1 , "5" , "" },
53
+ {"Single digit overflow" , []string {"9_test" }, "migrationDir/" , 1 , "" , "Next sequence number 10 too large. At most 1 digits are allowed" },
54
+ {"Zero-pad initialize" , []string {}, "migrationDir/" , 6 , "000001" , "" },
55
+ {"Zero-pad malformed" , []string {"bad" }, "migrationDir/" , 6 , "" , "Malformed migration filename: bad" },
56
+ {"Zero-pad no int" , []string {"bad_bad" }, "migrationDir/" , 6 , "" , "strconv.Atoi: parsing \" bad\" : invalid syntax" },
57
+ {"Zero-pad negative seq" , []string {"-000005_test" }, "migrationDir/" , 6 , "" , "Next sequence number must be positive" },
58
+ {"Zero-pad increment" , []string {"000003_test" , "000004_test" }, "migrationDir/" , 6 , "000005" , "" },
59
+ {"Zero-pad overflow" , []string {"999999_test" }, "migrationDir/" , 6 , "" , "Next sequence number 1000000 too large. At most 6 digits are allowed" },
60
+ {"dir - no trailing slash" , []string {"migrationDir/000001_test" }, "migrationDir" , 6 , "" , `strconv.Atoi: parsing "/000001": invalid syntax` },
61
+ {"dir - with dot prefix success" , []string {"migrationDir/000001_test" }, "./migrationDir/" , 6 , "" , `strconv.Atoi: parsing "migrationDir/000001": invalid syntax` },
62
+ {"dir - no dir prefix" , []string {"000001_test" }, "migrationDir/" , 6 , "000002" , "" },
63
+ {"dir - strip success" , []string {"migrationDir/000001_test" }, "migrationDir/" , 6 , "000002" , "" },
29
64
}
30
65
for _ , c := range cases {
31
66
t .Run (c .name , func (t * testing.T ) {
0 commit comments