Skip to content

Commit 40477f5

Browse files
committed
refactor: create entity type directories on-demand instead of at init
1 parent 78ff8e3 commit 40477f5

3 files changed

Lines changed: 20 additions & 15 deletions

File tree

internal/sync/sync_test.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,11 @@ func TestForceRebuild_PartialParseFailure(t *testing.T) {
262262

263263
writeEntity(t, store, "REQ-001", model.EntityTypeRequirement, "Good entity", nil)
264264

265-
badPath := filepath.Join(root, "entities", "decision", "DEC-BAD.toml")
265+
badDir := filepath.Join(root, "entities", "decision")
266+
if err := os.MkdirAll(badDir, 0o755); err != nil {
267+
t.Fatalf("create bad dir: %v", err)
268+
}
269+
badPath := filepath.Join(badDir, "DEC-BAD.toml")
266270
if err := os.WriteFile(badPath, []byte("this is not valid toml [[["), 0o644); err != nil {
267271
t.Fatalf("write bad file: %v", err)
268272
}

internal/toml/loader.go

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,10 @@ func (s *Store) HistoryPath(entityID string) string {
3838
return filepath.Join(s.root, "history", entityID+".toml")
3939
}
4040

41-
// Init creates the directory structure: entities/{type}/ for all entity types + history/.
4241
func (s *Store) Init() error {
43-
for et := range model.TypePrefixMap {
44-
dir := filepath.Join(s.root, "entities", string(et))
45-
if err := os.MkdirAll(dir, 0o755); err != nil {
46-
return fmt.Errorf("init entity dir %q: %w", dir, err)
47-
}
42+
entitiesDir := filepath.Join(s.root, "entities")
43+
if err := os.MkdirAll(entitiesDir, 0o755); err != nil {
44+
return fmt.Errorf("init entities dir: %w", err)
4845
}
4946

5047
histDir := filepath.Join(s.root, "history")

internal/toml/loader_test.go

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,20 +44,24 @@ func TestStore_Init(t *testing.T) {
4444
t.Fatalf("Init: %v", err)
4545
}
4646

47+
entitiesDir := filepath.Join(root, "entities")
48+
info, err := os.Stat(entitiesDir)
49+
if err != nil {
50+
t.Fatalf("expected entities dir to exist: %v", err)
51+
}
52+
if !info.IsDir() {
53+
t.Fatalf("expected entities to be a directory")
54+
}
55+
4756
for et := range model.TypePrefixMap {
4857
dir := filepath.Join(root, "entities", string(et))
49-
info, err := os.Stat(dir)
50-
if err != nil {
51-
t.Errorf("expected directory %s to exist: %v", dir, err)
52-
continue
53-
}
54-
if !info.IsDir() {
55-
t.Errorf("expected %s to be a directory", dir)
58+
if _, err := os.Stat(dir); err == nil {
59+
t.Errorf("expected per-type directory %s to NOT exist after Init (created on-demand)", dir)
5660
}
5761
}
5862

5963
histDir := filepath.Join(root, "history")
60-
info, err := os.Stat(histDir)
64+
info, err = os.Stat(histDir)
6165
if err != nil {
6266
t.Fatalf("expected history dir to exist: %v", err)
6367
}

0 commit comments

Comments
 (0)