- commit
- 70d38c3cd6278efacf1cf389ae0312c92dba5bbe
- parent
- 535c65008aff89abf3d6b51b84a3df4f58c0e432
- author
- Dami <dami.etoile@gmail.com>
- kind
- test risk score 0.0 of 3, Jev's estimate
| M | internal/ | 21 | +++++++++++++++++++++ |
@@ -8,6 +8,7 @@ import (
88 99 "github.com/charmbracelet/x/ansi"1010 11+ "github.com/FelineStateMachine/012/internal/confine"1112 "github.com/FelineStateMachine/012/internal/sheet"1213 )1314 @@ -209,6 +210,26 @@ func TestLinksFromElsewhereAskOnce(t *testing.T) {
209210 }210211 }211212 213+// Served, a linked file resolves inside the served folder: one outside214+// shows why in its region, one inside is followed.215+func TestLinkServedConfined(t *testing.T) {216+ dir := t.TempDir()217+ writeFile(t, filepath.Join(dir, "in.csv"), "a\n1\n")218+ m := newModel()219+ m.root, _ = confine.New(dir)220+ m.SetMachine("here")221+ m.book().SetLinkOrigin("here")222+ out, _ := m.sheet.AddLinked(addr("A1"), sheet.LinkSource{Path: "../out.csv"})223+ m.sheet.AddLinked(addr("C1"), sheet.LinkSource{Path: "in.csv"})224+ pump(t, m)225+ if r, _ := m.book().LinkedRegion(out); !strings.Contains(r.Err, "outside") || m.sheet.Value(addr("A1")).Str != "#REF!" {226+ t.Errorf("outside the served folder: %+v, A1 %v", r, m.sheet.Value(addr("A1")))227+ }228+ if m.sheet.Value(addr("C2")).Num != 1 {229+ t.Errorf("inside it: C2 %v", m.sheet.Value(addr("C2")))230+ }231+}232+212233 func TestLinkPath(t *testing.T) {213234 for _, c := range []struct{ name, book, want string }{214235 {"log.csv", "", "log.csv"},