1515package librarian
1616
1717import (
18- "encoding/json"
1918 "errors"
2019 "fmt"
2120 "io"
@@ -96,10 +95,11 @@ libraries:
9695 },
9796 } {
9897 t .Run (test .name , func (t * testing.T ) {
99- contentLoader := func (path string ) ([]byte , error ) {
100- return []byte (path ), nil
98+ path := filepath .Join (t .TempDir (), "state.yaml" )
99+ if err := os .WriteFile (path , []byte (test .content ), 0644 ); err != nil {
100+ t .Fatalf ("os.WriteFile() failed: %v" , err )
101101 }
102- got , err := parseLibrarianState (contentLoader , test . content , test .source )
102+ got , err := parseLibrarianState (path , test .source )
103103 if (err != nil ) != test .wantErr {
104104 t .Errorf ("parseLibrarianState() error = %v, wantErr %v" , err , test .wantErr )
105105 return
@@ -113,59 +113,43 @@ libraries:
113113
114114func TestFindServiceConfigIn (t * testing.T ) {
115115 for _ , test := range []struct {
116- name string
117- contentLoader func (file string ) ([]byte , error )
118- path string
119- want string
120- wantErr bool
116+ name string
117+ path string
118+ want string
119+ wantErr bool
121120 }{
122121 {
123122 name : "find a service config" ,
124- contentLoader : func (file string ) ([]byte , error ) {
125- return os .ReadFile (file )
126- },
127123 path : filepath .Join (".." , ".." , "testdata" , "find_a_service_config" ),
128124 want : "service_config.yaml" ,
129125 },
130126 {
131- name : "non existed source path" ,
132- contentLoader : func (file string ) ([]byte , error ) {
133- return os .ReadFile (file )
134- },
127+ name : "non existed source path" ,
135128 path : filepath .Join (".." , ".." , "testdata" , "non-existed-path" ),
136129 want : "" ,
137130 wantErr : true ,
138131 },
139132 {
140- name : "non service config in a source path" ,
141- contentLoader : func (file string ) ([]byte , error ) {
142- return os .ReadFile (file )
143- },
133+ name : "non service config in a source path" ,
144134 path : filepath .Join (".." , ".." , "testdata" , "no_service_config" ),
145135 want : "" ,
146136 wantErr : true ,
147137 },
148138 {
149- name : "simulated load error" ,
150- contentLoader : func (file string ) ([]byte , error ) {
151- return nil , errors .New ("simulate loading error for testing" )
152- },
139+ name : "simulated load error" ,
153140 path : filepath .Join (".." , ".." , "testdata" , "no_service_config" ),
154141 want : "" ,
155142 wantErr : true ,
156143 },
157144 {
158- name : "invalid yaml" ,
159- contentLoader : func (file string ) ([]byte , error ) {
160- return os .ReadFile (file )
161- },
145+ name : "invalid yaml" ,
162146 path : filepath .Join (".." , ".." , "testdata" , "invalid_yaml" ),
163147 want : "" ,
164148 wantErr : true ,
165149 },
166150 } {
167151 t .Run (test .name , func (t * testing.T ) {
168- got , err := findServiceConfigIn (test .contentLoader , test . path )
152+ got , err := findServiceConfigIn (test .path )
169153 if test .wantErr {
170154 if err == nil {
171155 t .Errorf ("findServiceConfigIn() should return error" )
@@ -245,10 +229,7 @@ func TestPopulateServiceConfig(t *testing.T) {
245229 },
246230 } {
247231 t .Run (test .name , func (t * testing.T ) {
248- contentLoader := func (file string ) ([]byte , error ) {
249- return os .ReadFile (file )
250- }
251- err := populateServiceConfigIfEmpty (test .state , contentLoader , test .path )
232+ err := populateServiceConfigIfEmpty (test .state , test .path )
252233 if test .wantErr {
253234 if err == nil {
254235 t .Errorf ("findServiceConfigIn() should return error" )
@@ -310,9 +291,6 @@ func TestSaveLibrarianState(t *testing.T) {
310291
311292func TestReadConfigureResponseJSON (t * testing.T ) {
312293 t .Parallel ()
313- contentLoader := func (data []byte , state * config.LibraryState ) error {
314- return json .Unmarshal (data , state )
315- }
316294 for _ , test := range []struct {
317295 name string
318296 jsonFilePath string
@@ -350,17 +328,12 @@ func TestReadConfigureResponseJSON(t *testing.T) {
350328 name : "invalid file name" ,
351329 wantState : nil ,
352330 },
353- {
354- name : "invalid content loader" ,
355- jsonFilePath : "../../testdata/invalid-contentLoader.json" ,
356- wantState : nil ,
357- },
358331 } {
359332 t .Run (test .name , func (t * testing.T ) {
360333 tempDir := t .TempDir ()
361334 if test .name == "invalid file name" {
362335 filePath := filepath .Join (tempDir , "my\x00 file.json" )
363- _ , err := readLibraryState (contentLoader , filePath )
336+ _ , err := readLibraryState (filePath )
364337 if err == nil {
365338 t .Error ("readLibraryState() expected an error but got nil" )
366339 }
@@ -373,14 +346,11 @@ func TestReadConfigureResponseJSON(t *testing.T) {
373346 }
374347
375348 if test .name == "invalid content loader" {
376- invalidContentLoader := func (data []byte , state * config.LibraryState ) error {
377- return errors .New ("simulated Unmarshal error" )
378- }
379349 dst := fmt .Sprintf ("%s/copy.json" , os .TempDir ())
380350 if err := copyFile (dst , test .jsonFilePath ); err != nil {
381351 t .Error (err )
382352 }
383- _ , err := readLibraryState (invalidContentLoader , dst )
353+ _ , err := readLibraryState (dst )
384354 if err == nil {
385355 t .Errorf ("readLibraryState() expected an error but got nil" )
386356 }
@@ -398,7 +368,7 @@ func TestReadConfigureResponseJSON(t *testing.T) {
398368 t .Error (err )
399369 }
400370
401- gotState , err := readLibraryState (contentLoader , dstFilePath )
371+ gotState , err := readLibraryState (dstFilePath )
402372
403373 if test .name == "load content with an error message" {
404374 if err == nil {
0 commit comments