package storage import ( "os" "path/filepath" "testing" ) func TestNewMultiKeepsDuplicateBasenames(t *testing.T) { root := t.TempDir() first := filepath.Join(root, "same") second := filepath.Join(root, "other", "same") if err := os.MkdirAll(first, 0o755); err != nil { t.Fatal(err) } if err := os.MkdirAll(second, 0o755); err != nil { t.Fatal(err) } m := NewMulti([]string{first, second}) if len(m.Roots) != 2 || len(m.Names) != 2 { t.Fatalf("duplicate basename dropped: roots=%d names=%v", len(m.Roots), m.Names) } if m.Names[0] != "same" || m.Names[1] != "same-2" { t.Fatalf("unexpected virtual names: %v", m.Names) } } func TestMultiRejectsMutationOfVirtualRoot(t *testing.T) { root1 := t.TempDir() root2 := t.TempDir() m := NewMulti([]string{root1, root2}) if err := m.Remove(m.Names[0]); err == nil { t.Fatal("expected virtual root removal to be rejected") } if _, err := m.Create(m.Names[0]); err == nil { t.Fatal("expected virtual root creation to be rejected") } if err := m.Rename(m.Names[0], m.Names[1]); err == nil { t.Fatal("expected virtual root rename to be rejected") } }