Files
libopenapi/index/rolodex_test.go
2023-10-20 17:50:51 -04:00

82 lines
1.8 KiB
Go

// Copyright 2023 Princess B33f Heavy Industries / Dave Shanley
// SPDX-License-Identifier: MIT
package index
import (
"github.com/stretchr/testify/assert"
"os"
"testing"
"testing/fstest"
"time"
)
func TestRolodex_LocalNativeFS(t *testing.T) {
t.Parallel()
testFS := fstest.MapFS{
"spec.yaml": {Data: []byte("hip"), ModTime: time.Now()},
"subfolder/spec1.json": {Data: []byte("hop"), ModTime: time.Now()},
"subfolder2/spec2.yaml": {Data: []byte("chop"), ModTime: time.Now()},
"subfolder2/hello.jpg": {Data: []byte("shop"), ModTime: time.Now()},
}
baseDir := "/tmp"
fileFS, err := NewLocalFS(baseDir, testFS)
if err != nil {
t.Fatal(err)
}
rolo := NewRolodex(CreateOpenAPIIndexConfig())
rolo.AddLocalFS(baseDir, fileFS)
f, rerr := rolo.Open("spec.yaml")
assert.NoError(t, rerr)
assert.Equal(t, "hip", f.GetContent())
}
func TestRolodex_LocalNonNativeFS(t *testing.T) {
t.Parallel()
testFS := fstest.MapFS{
"spec.yaml": {Data: []byte("hip"), ModTime: time.Now()},
"subfolder/spec1.json": {Data: []byte("hop"), ModTime: time.Now()},
"subfolder2/spec2.yaml": {Data: []byte("chop"), ModTime: time.Now()},
"subfolder2/hello.jpg": {Data: []byte("shop"), ModTime: time.Now()},
}
baseDir := ""
rolo := NewRolodex(CreateOpenAPIIndexConfig())
rolo.AddLocalFS(baseDir, testFS)
f, rerr := rolo.Open("spec.yaml")
assert.NoError(t, rerr)
assert.Equal(t, "hip", f.GetContent())
}
func TestRolodex_SimpleTest_OneDoc(t *testing.T) {
baseDir := "rolodex_test_data"
fileFS, err := NewLocalFS(baseDir, os.DirFS(baseDir))
if err != nil {
t.Fatal(err)
}
cf := CreateOpenAPIIndexConfig()
cf.BasePath = baseDir
rolo := NewRolodex(cf)
rolo.AddLocalFS(baseDir, fileFS)
err = rolo.IndexTheRolodex()
assert.NoError(t, err)
assert.Len(t, rolo.indexes, 9)
}