v / vlib / v2 / pref / module_test.v
26 lines · 23 sloc · 918 bytes · b831b0eec9b5b2756784b5dabf3808d47d6a39ae
Raw
1module pref
2
3import os
4
5fn test_get_module_path_finds_sibling_module_from_importing_file_ancestor() {
6 tmp_dir := os.join_path(os.vtmp_dir(), 'v2_pref_sibling_module_${os.getpid()}')
7 project_dir := os.join_path(tmp_dir, 'app')
8 project_subdir := os.join_path(project_dir, 'ui')
9 sibling_module_dir := os.join_path(tmp_dir, 'viper')
10 os.mkdir_all(project_subdir) or { panic(err) }
11 os.mkdir_all(sibling_module_dir) or { panic(err) }
12 defer {
13 os.rmdir_all(tmp_dir) or {}
14 }
15 os.write_file(os.join_path(project_dir, 'v.mod'), "Module { name: 'app' }") or { panic(err) }
16 os.write_file(os.join_path(sibling_module_dir, 'v.mod'), "Module { name: 'viper' }") or {
17 panic(err)
18 }
19
20 prefs := Preferences{
21 vroot: tmp_dir
22 vmodules_path: os.join_path(tmp_dir, '.vmodules')
23 }
24 importing_file := os.join_path(project_subdir, 'text.v')
25 assert prefs.get_module_path('viper', importing_file) == sibling_module_dir
26}
27