ajhahn.de
← eeco
Go 37 lines
package cockpit

import (
	"path/filepath"
	"testing"
)

func TestRelUnder_RejectsEscapes(t *testing.T) {
	bad := []string{
		"",
		"/etc/passwd",
		"../escape",
		"../../etc/passwd",
		filepath.Join("a", "..", "..", "b"),
	}
	for _, p := range bad {
		if _, err := relUnder(p); err == nil {
			t.Errorf("relUnder(%q) accepted an escaping/absolute path", p)
		}
	}
}

func TestRelUnder_AcceptsCleanRelative(t *testing.T) {
	good := []string{
		"AGENTS.md",
		"GEMINI.md",
		".claude/skills/handover/SKILL.md",
		".cursor/rules/handover.mdc",
		"a/b/c.md",
	}
	for _, p := range good {
		if _, err := relUnder(p); err != nil {
			t.Errorf("relUnder(%q) rejected a clean relative path: %v", p, err)
		}
	}
}