@@ -42,7 +42,12 @@ func (s *PackageMakeCommandTestSuite) TestExtend() {
42
42
43
43
if len (got .Flags ) > 0 {
44
44
s .Run ("should have correctly configured StringFlag" , func () {
45
- flag , ok := got .Flags [0 ].(* command.StringFlag )
45
+ managerFlag , ok := got .Flags [0 ].(* command.BoolFlag )
46
+ if ! ok {
47
+ s .Fail ("First flag is not BoolFlag (got type: %T)" , got .Flags [0 ])
48
+ }
49
+
50
+ rootFlag , ok := got .Flags [1 ].(* command.StringFlag )
46
51
if ! ok {
47
52
s .Fail ("First flag is not StringFlag (got type: %T)" , got .Flags [0 ])
48
53
}
@@ -52,10 +57,13 @@ func (s *PackageMakeCommandTestSuite) TestExtend() {
52
57
got interface {}
53
58
expected interface {}
54
59
}{
55
- {"Name" , flag .Name , "root" },
56
- {"Aliases" , flag .Aliases , []string {"r" }},
57
- {"Usage" , flag .Usage , "The root path of package, default: packages" },
58
- {"Value" , flag .Value , "packages" },
60
+ {"Name" , rootFlag .Name , "root" },
61
+ {"Aliases" , rootFlag .Aliases , []string {"r" }},
62
+ {"Usage" , rootFlag .Usage , "The root path of package, default: packages" },
63
+ {"Value" , rootFlag .Value , "packages" },
64
+ {"Name" , managerFlag .Name , "manager" },
65
+ {"Aliases" , managerFlag .Aliases , []string {"m" }},
66
+ {"Usage" , managerFlag .Usage , "Create a package manager" },
59
67
}
60
68
61
69
for _ , tc := range testCases {
@@ -93,10 +101,32 @@ func (s *PackageMakeCommandTestSuite) TestHandle() {
93
101
},
94
102
},
95
103
{
96
- name : "name is sms and use default root" ,
104
+ name : "name is sms and use default root(hasn't manager)" ,
105
+ setup : func () {
106
+ mockContext .EXPECT ().Argument (0 ).Return ("sms" ).Once ()
107
+ mockContext .EXPECT ().Option ("root" ).Return ("packages" ).Once ()
108
+ mockContext .EXPECT ().OptionBool ("manager" ).Return (false ).Once ()
109
+ mockContext .EXPECT ().Success ("Package created successfully: packages/sms" ).Once ()
110
+ },
111
+ assert : func () {
112
+ s .NoError (NewPackageMakeCommand ().Handle (mockContext ))
113
+ s .True (file .Exists ("packages/sms/README.md" ))
114
+ s .True (file .Exists ("packages/sms/service_provider.go" ))
115
+ s .True (file .Exists ("packages/sms/sms.go" ))
116
+ s .True (file .Exists ("packages/sms/config/sms.go" ))
117
+ s .True (file .Exists ("packages/sms/contracts/sms.go" ))
118
+ s .True (file .Exists ("packages/sms/facades/sms.go" ))
119
+ s .True (file .Contain ("packages/sms/facades/sms.go" , "goravel/packages/sms" ))
120
+ s .True (file .Contain ("packages/sms/facades/sms.go" , "goravel/packages/sms/contracts" ))
121
+ s .NoError (file .Remove ("packages" ))
122
+ },
123
+ },
124
+ {
125
+ name : "name is sms and use default root(has manager)" ,
97
126
setup : func () {
98
127
mockContext .EXPECT ().Argument (0 ).Return ("sms" ).Once ()
99
128
mockContext .EXPECT ().Option ("root" ).Return ("packages" ).Once ()
129
+ mockContext .EXPECT ().OptionBool ("manager" ).Return (true ).Once ()
100
130
mockContext .EXPECT ().Success ("Package created successfully: packages/sms" ).Once ()
101
131
},
102
132
assert : func () {
@@ -109,6 +139,7 @@ func (s *PackageMakeCommandTestSuite) TestHandle() {
109
139
s .True (file .Exists ("packages/sms/facades/sms.go" ))
110
140
s .True (file .Contain ("packages/sms/facades/sms.go" , "goravel/packages/sms" ))
111
141
s .True (file .Contain ("packages/sms/facades/sms.go" , "goravel/packages/sms/contracts" ))
142
+ s .True (file .Exists ("packages/sms/manager/manager.go" ))
112
143
s .NoError (file .Remove ("packages" ))
113
144
},
114
145
},
@@ -117,6 +148,7 @@ func (s *PackageMakeCommandTestSuite) TestHandle() {
117
148
setup : func () {
118
149
mockContext .EXPECT ().Argument (0 ).Return ("github.com/goravel/sms-aws" ).Once ()
119
150
mockContext .EXPECT ().Option ("root" ).Return ("package" ).Once ()
151
+ mockContext .EXPECT ().OptionBool ("manager" ).Return (false ).Once ()
120
152
mockContext .EXPECT ().Success ("Package created successfully: package/github_com_goravel_sms_aws" ).Once ()
121
153
},
122
154
assert : func () {
0 commit comments