From 8335db72e20aec7721257a350aa2038519fded14 Mon Sep 17 00:00:00 2001 From: quobix Date: Sat, 25 Nov 2023 20:44:36 -0500 Subject: [PATCH] added coverage for fixed remote unsupported handler Signed-off-by: quobix --- index/rolodex_remote_loader.go | 11 +++++------ index/rolodex_remote_loader_test.go | 11 +++++++++++ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/index/rolodex_remote_loader.go b/index/rolodex_remote_loader.go index c008525..822c3c5 100644 --- a/index/rolodex_remote_loader.go +++ b/index/rolodex_remote_loader.go @@ -314,15 +314,9 @@ func (i *RemoteFS) Open(remoteURL string) (fs.File, error) { return wait.file, nil } - processingWaiter := &waiterRemote{f: remoteParsedURL.Path} - - // add to processing - i.ProcessingFiles.Store(remoteParsedURL.Path, processingWaiter) - fileExt := ExtractFileType(remoteParsedURL.Path) if fileExt == UNSUPPORTED { - i.ProcessingFiles.Delete(remoteParsedURL.Path) i.remoteErrors = append(i.remoteErrors, fs.ErrInvalid) if i.logger != nil { i.logger.Warn("[rolodex remote loader] unsupported file in reference will be ignored", "file", remoteURL, "remoteURL", remoteParsedURL.String()) @@ -330,6 +324,11 @@ func (i *RemoteFS) Open(remoteURL string) (fs.File, error) { return nil, &fs.PathError{Op: "open", Path: remoteURL, Err: fs.ErrInvalid} } + processingWaiter := &waiterRemote{f: remoteParsedURL.Path} + + // add to processing + i.ProcessingFiles.Store(remoteParsedURL.Path, processingWaiter) + // if the remote URL is absolute (http:// or https://), and we have a rootURL defined, we need to override // the host being defined by this URL, and use the rootURL instead, but keep the path. if i.rootURLParsed != nil { diff --git a/index/rolodex_remote_loader_test.go b/index/rolodex_remote_loader_test.go index 8731733..2e50e64 100644 --- a/index/rolodex_remote_loader_test.go +++ b/index/rolodex_remote_loader_test.go @@ -397,3 +397,14 @@ func TestNewRemoteFS_RemoteBaseURL_EmptySpecFailIndex(t *testing.T) { assert.Error(t, y) assert.Equal(t, "there is nothing in the spec, it's empty - so there is nothing to be done", y.Error()) } + +func TestNewRemoteFS_Unsupported(t *testing.T) { + + cf := CreateOpenAPIIndexConfig() + rfs, _ := NewRemoteFSWithConfig(cf) + + x, y := rfs.Open("/woof.png") + assert.Nil(t, x) + assert.Error(t, y) + assert.Equal(t, "open /woof.png: invalid argument", y.Error()) +}