fix issue: continue loading docs even if one has an error
Some checks are pending
Lint / golangci-lint (push) Waiting to run
Declarative Tests / test (push) Waiting to run
Declarative Tests / build-fedora (push) Waiting to run
Declarative Tests / build-ubuntu-focal (push) Waiting to run

This commit is contained in:
Matthew Rich 2024-09-24 19:28:13 +00:00
parent 486281525a
commit 8df03c455c
2 changed files with 24 additions and 14 deletions

View File

@ -50,7 +50,7 @@ func Load(uri folio.URI) (documents []data.Document, err error) {
func BuiltInDocuments() (documents []data.Document, err error) { func BuiltInDocuments() (documents []data.Document, err error) {
docFs := fs.NewWalkDir(documentFiles, "", func(fsys fs.FS, path string, file fs.DirEntry) (err error) { docFs := fs.NewWalkDir(documentFiles, "", func(fsys fs.FS, path string, file fs.DirEntry) (walkErr error) {
u := folio.URI(fmt.Sprintf("file://%s", path)) u := folio.URI(fmt.Sprintf("file://%s", path))
slog.Info("BuiltInDocuments()", "file", u) slog.Info("BuiltInDocuments()", "file", u)
@ -64,6 +64,6 @@ func BuiltInDocuments() (documents []data.Document, err error) {
return return
}) })
err = docFs.Walk(nil) docFs.Walk(nil)
return documents, err return documents, err
} }

View File

@ -9,6 +9,7 @@ import (
"testing" "testing"
"decl/tests/tempdir" "decl/tests/tempdir"
"decl/internal/folio" "decl/internal/folio"
"errors"
) )
var TempDir tempdir.Path = "testbuiltin" var TempDir tempdir.Path = "testbuiltin"
@ -27,17 +28,20 @@ func TestMain(m *testing.M) {
func TestBuiltInLoad(t *testing.T) { func TestBuiltInLoad(t *testing.T) {
docs, err := Load("file://documents/facter.jx.yaml") docs, err := Load("file://documents/facter.jx.yaml")
if ! errors.Is(err, os.ErrNotExist) {
assert.Nil(t, err) assert.Nil(t, err)
assert.Greater(t, len(docs), 0) assert.Greater(t, len(docs), 0)
} }
}
func TestBuiltInDocuments(t *testing.T) { func TestBuiltInDocuments(t *testing.T) {
docs, err := BuiltInDocuments() docs, err := BuiltInDocuments()
assert.Greater(t, len(docs), 0)
if ! errors.Is(err, os.ErrNotExist) {
assert.Nil(t, err) assert.Nil(t, err)
config, ok := folio.DocumentRegistry.GetDocument("file://documents/facter.jx.yaml") config, ok := folio.DocumentRegistry.GetDocument("file://documents/facter.jx.yaml")
assert.True(t, ok) assert.True(t, ok)
assert.Greater(t, len(docs), 0)
slog.Info("TestBuiltInDocuments()", "docuemnt", config) slog.Info("TestBuiltInDocuments()", "docuemnt", config)
@ -47,3 +51,9 @@ func TestBuiltInDocuments(t *testing.T) {
assert.Nil(t, e) assert.Nil(t, e)
assert.Equal(t, "physical", v) assert.Equal(t, "physical", v)
} }
systemConfig, systemExists := folio.DocumentRegistry.GetDocument("file://documents/system.jx.yaml")
assert.True(t, systemExists)
assert.True(t, systemConfig.HasConfig("system"))
}