Skip to content

Commit ada1e2c

Browse files
committed
deduplicate module fixture engine setup in modules tests
1 parent 7f84939 commit ada1e2c

1 file changed

Lines changed: 34 additions & 27 deletions

File tree

vibes/modules_test.go

Lines changed: 34 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,15 @@ import (
1010
"testing"
1111
)
1212

13+
const moduleFixturesRoot = "testdata/modules"
14+
15+
func moduleTestEngine(t testing.TB) *Engine {
16+
t.Helper()
17+
return MustNewEngine(Config{ModulePaths: []string{filepath.FromSlash(moduleFixturesRoot)}})
18+
}
19+
1320
func TestRequireProvidesExports(t *testing.T) {
14-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
21+
engine := moduleTestEngine(t)
1522

1623
script, err := engine.Compile(`def run(value)
1724
helpers = require("helper")
@@ -31,7 +38,7 @@ end`)
3138
}
3239

3340
func TestRequireSupportsModuleAlias(t *testing.T) {
34-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
41+
engine := moduleTestEngine(t)
3542

3643
script, err := engine.Compile(`def run(value)
3744
require("helper", as: "helpers")
@@ -52,7 +59,7 @@ end`)
5259
}
5360

5461
func TestRequireAliasValidation(t *testing.T) {
55-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
62+
engine := moduleTestEngine(t)
5663

5764
cases := []struct {
5865
name string
@@ -105,7 +112,7 @@ end`,
105112
}
106113

107114
func TestRequireAliasRejectsConflictingGlobal(t *testing.T) {
108-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
115+
engine := moduleTestEngine(t)
109116

110117
script, err := engine.Compile(`def helpers(value)
111118
value
@@ -126,7 +133,7 @@ end`)
126133
}
127134

128135
func TestRequireAliasConflictDoesNotLeakExportsWhenRescued(t *testing.T) {
129-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
136+
engine := moduleTestEngine(t)
130137

131138
script, err := engine.Compile(`def helpers(value)
132139
value
@@ -159,7 +166,7 @@ end`)
159166
}
160167

161168
func TestRequirePreservesModuleLocalResolution(t *testing.T) {
162-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
169+
engine := moduleTestEngine(t)
163170

164171
script, err := engine.Compile(`def rate()
165172
100
@@ -183,7 +190,7 @@ end`)
183190
}
184191

185192
func TestRequireNamespaceConflictKeepsExistingGlobalBinding(t *testing.T) {
186-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
193+
engine := moduleTestEngine(t)
187194

188195
script, err := engine.Compile(`def double(value)
189196
value + 1
@@ -217,7 +224,7 @@ end`)
217224
}
218225

219226
func TestRequireNamespaceConflictKeepsFirstModuleBinding(t *testing.T) {
220-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
227+
engine := moduleTestEngine(t)
221228

222229
script, err := engine.Compile(`def run(value)
223230
first = require("helper")
@@ -257,7 +264,7 @@ end`)
257264
}
258265

259266
func TestRequireMissingModule(t *testing.T) {
260-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
267+
engine := moduleTestEngine(t)
261268

262269
script, err := engine.Compile(`def run()
263270
require("missing")
@@ -274,7 +281,7 @@ end`)
274281
}
275282

276283
func TestRequireCachesModules(t *testing.T) {
277-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
284+
engine := moduleTestEngine(t)
278285

279286
script, err := engine.Compile(`def run()
280287
require("helper")
@@ -355,7 +362,7 @@ end`)
355362
}
356363

357364
func TestRequireRejectsAbsolutePaths(t *testing.T) {
358-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
365+
engine := moduleTestEngine(t)
359366

360367
absPath := "/etc/passwd"
361368
if filepath.Separator == '\\' {
@@ -384,7 +391,7 @@ end`, absPath)
384391
}
385392

386393
func TestRequireRejectsPathTraversal(t *testing.T) {
387-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
394+
engine := moduleTestEngine(t)
388395

389396
script, err := engine.Compile(`def run()
390397
require("nested/../../etc/passwd")
@@ -401,7 +408,7 @@ end`)
401408
}
402409

403410
func TestRequireRejectsBackslashPathTraversal(t *testing.T) {
404-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
411+
engine := moduleTestEngine(t)
405412

406413
script, err := engine.Compile(`def run()
407414
require("nested\\..\\..\\etc\\passwd")
@@ -418,7 +425,7 @@ end`)
418425
}
419426

420427
func TestRequireNormalizesPathSeparators(t *testing.T) {
421-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
428+
engine := moduleTestEngine(t)
422429

423430
script, err := engine.Compile(`def run(value)
424431
unix_style = require("shared/math")
@@ -442,7 +449,7 @@ end`)
442449
}
443450

444451
func TestRequireRelativePathRequiresModuleCaller(t *testing.T) {
445-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
452+
engine := moduleTestEngine(t)
446453

447454
script, err := engine.Compile(`def run()
448455
require("./helper")
@@ -459,7 +466,7 @@ end`)
459466
}
460467

461468
func TestRequireRelativePathDoesNotLeakFromModuleIntoHostFunction(t *testing.T) {
462-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
469+
engine := moduleTestEngine(t)
463470

464471
script, err := engine.Compile(`def host_relative()
465472
require("./helper")
@@ -481,7 +488,7 @@ end`)
481488
}
482489

483490
func TestRequireSupportsRelativePathsWithinModuleRoot(t *testing.T) {
484-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
491+
engine := moduleTestEngine(t)
485492

486493
script, err := engine.Compile(`def run(value)
487494
mod = require("relative/root")
@@ -501,7 +508,7 @@ end`)
501508
}
502509

503510
func TestRequireRelativePathRejectsEscapingModuleRoot(t *testing.T) {
504-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
511+
engine := moduleTestEngine(t)
505512

506513
script, err := engine.Compile(`def run()
507514
mod = require("relative/escape")
@@ -693,7 +700,7 @@ end`)
693700
}
694701

695702
func TestRequireRelativePathWorksInModuleDefinedBlockYieldedFromHost(t *testing.T) {
696-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
703+
engine := moduleTestEngine(t)
697704

698705
script, err := engine.Compile(`def host_each()
699706
yield()
@@ -717,7 +724,7 @@ end`)
717724
}
718725

719726
func TestRequireExportsOnlyNonPrivateFunctions(t *testing.T) {
720-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
727+
engine := moduleTestEngine(t)
721728

722729
script, err := engine.Compile(`def run(value)
723730
mod = require("private_exports")
@@ -741,7 +748,7 @@ end`)
741748
}
742749

743750
func TestRequireSupportsPrivateModuleExportOptOut(t *testing.T) {
744-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
751+
engine := moduleTestEngine(t)
745752

746753
script, err := engine.Compile(`def run(value)
747754
mod = require("explicit_exports")
@@ -781,7 +788,7 @@ end`)
781788
}
782789

783790
func TestRequirePrivateFunctionsAreNotInjectedAsGlobals(t *testing.T) {
784-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
791+
engine := moduleTestEngine(t)
785792

786793
script, err := engine.Compile(`def run(value)
787794
require("explicit_exports")
@@ -855,7 +862,7 @@ end`)
855862
}
856863

857864
func TestRequirePrivateFunctionsRemainModuleScoped(t *testing.T) {
858-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
865+
engine := moduleTestEngine(t)
859866

860867
script, err := engine.Compile(`def run(value)
861868
require("private_exports")
@@ -873,7 +880,7 @@ end`)
873880
}
874881

875882
func TestRequireModuleCacheAvoidsDuplicateLoads(t *testing.T) {
876-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
883+
engine := moduleTestEngine(t)
877884

878885
script, err := engine.Compile(`def run()
879886
require("circular_a")
@@ -894,7 +901,7 @@ end`)
894901
}
895902

896903
func TestRequireRuntimeModuleRecursionHitsRecursionLimit(t *testing.T) {
897-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
904+
engine := moduleTestEngine(t)
898905

899906
script, err := engine.Compile(`def run()
900907
mod = require("circular_runtime_a")
@@ -912,7 +919,7 @@ end`)
912919
}
913920

914921
func TestRequireAllowsCachedModuleReuseAcrossModuleCalls(t *testing.T) {
915-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
922+
engine := moduleTestEngine(t)
916923

917924
script, err := engine.Compile(`def run()
918925
mod = require("require_cached_a")
@@ -932,7 +939,7 @@ end`)
932939
}
933940

934941
func TestRequireConcurrentLoading(t *testing.T) {
935-
engine := MustNewEngine(Config{ModulePaths: []string{filepath.Join("testdata", "modules")}})
942+
engine := moduleTestEngine(t)
936943

937944
script, err := engine.Compile(`def run()
938945
require("helper")

0 commit comments

Comments
 (0)