@@ -66,7 +66,6 @@ func TestDockerRun(t *testing.T) {
6666 testImage = "testImage"
6767 testLibraryID = "testLibraryID"
6868 testOutput = "testOutput"
69- testRepoRoot = "testRepoRoot"
7069 )
7170
7271 state := & config.LibrarianState {}
@@ -79,6 +78,7 @@ func TestDockerRun(t *testing.T) {
7978 docker * Docker
8079 runCommand func (ctx context.Context , d * Docker ) error
8180 want []string
81+ wantErr bool
8282 }{
8383 {
8484 name : "Generate" ,
@@ -110,6 +110,7 @@ func TestDockerRun(t *testing.T) {
110110 "--source=/source" ,
111111 fmt .Sprintf ("--library-id=%s" , testLibraryID ),
112112 },
113+ wantErr : false ,
113114 },
114115 {
115116 name : "Generate runs in docker" ,
@@ -141,24 +142,50 @@ func TestDockerRun(t *testing.T) {
141142 "--source=/source" ,
142143 fmt .Sprintf ("--library-id=%s" , testLibraryID ),
143144 },
145+ wantErr : false ,
144146 },
145147 {
146148 name : "Build" ,
147149 docker : & Docker {
148150 Image : testImage ,
149151 },
150152 runCommand : func (ctx context.Context , d * Docker ) error {
151- return d .Build (ctx , cfg , testRepoRoot , testLibraryID )
153+ buildRequest := & BuildRequest {
154+ Cfg : cfg ,
155+ State : state ,
156+ LibraryID : testLibraryID ,
157+ RepoDir : "." ,
158+ }
159+ return d .Build (ctx , buildRequest )
152160 },
153161 want : []string {
154162 "run" , "--rm" ,
155- "-v" , fmt .Sprintf ("%s:/repo" , testRepoRoot ),
163+ "-v" , ".librarian:/librarian:ro" ,
164+ "-v" , ".:/repo" ,
156165 testImage ,
157166 string (CommandBuild ),
158167 "--repo-root=/repo" ,
159168 "--test=true" ,
160169 fmt .Sprintf ("--library-id=%s" , testLibraryID ),
161170 },
171+ wantErr : false ,
172+ },
173+ {
174+ name : "Build with invalid repo dir" ,
175+ docker : & Docker {
176+ Image : testImage ,
177+ },
178+ runCommand : func (ctx context.Context , d * Docker ) error {
179+ buildRequest := & BuildRequest {
180+ Cfg : cfg ,
181+ State : state ,
182+ LibraryID : testLibraryID ,
183+ RepoDir : "/non-exist-dir" ,
184+ }
185+ return d .Build (ctx , buildRequest )
186+ },
187+ want : []string {},
188+ wantErr : true ,
162189 },
163190 {
164191 name : "Configure" ,
@@ -178,6 +205,7 @@ func TestDockerRun(t *testing.T) {
178205 "--.librarian/generator-input=/.librarian/generator-input" ,
179206 fmt .Sprintf ("--api=%s" , testAPIPath ),
180207 },
208+ wantErr : false ,
181209 },
182210 } {
183211 t .Run (test .name , func (t * testing.T ) {
@@ -188,9 +216,19 @@ func TestDockerRun(t *testing.T) {
188216 return nil
189217 }
190218 ctx := t .Context ()
191- if err := test .runCommand (ctx , test .docker ); err != nil {
219+ err := test .runCommand (ctx , test .docker )
220+
221+ if test .wantErr {
222+ if err == nil {
223+ t .Errorf ("%s should return error" , test .name )
224+ }
225+ return
226+ }
227+
228+ if err != nil {
192229 t .Fatal (err )
193230 }
231+
194232 os .RemoveAll (".librarian" )
195233 os .Remove (testGenerateRequest )
196234 })
@@ -263,22 +301,22 @@ func TestToGenerateRequestJSON(t *testing.T) {
263301 tempDir := t .TempDir ()
264302 if test .name == "invalid_file_name" {
265303 filePath := filepath .Join (tempDir , "my\x00 file.json" )
266- err := writeGenerateRequest (test .state , "google-cloud-go" , filePath )
304+ err := writeRequest (test .state , "google-cloud-go" , filePath )
267305 if err == nil {
268306 t .Errorf ("writeGenerateRequest() expected an error but got nil" )
269307 }
270308 return
271309 } else if test .expectErr {
272310 filePath := filepath .Join ("/non-exist-dir" , "generate-request.json" )
273- err := writeGenerateRequest (test .state , "google-cloud-go" , filePath )
311+ err := writeRequest (test .state , "google-cloud-go" , filePath )
274312 if err == nil {
275313 t .Errorf ("writeGenerateRequest() expected an error but got nil" )
276314 }
277315 return
278316 }
279317
280318 filePath := filepath .Join (tempDir , "generate-request.json" )
281- err := writeGenerateRequest (test .state , "google-cloud-go" , filePath )
319+ err := writeRequest (test .state , "google-cloud-go" , filePath )
282320
283321 if err != nil {
284322 t .Fatalf ("writeGenerateRequest() unexpected error: %v" , err )
0 commit comments