v2 / vlib / v / gen / js / sourcemap / basic_test.v
158 lines · 152 sloc · 3.4 KB · bae7684276f5e56a9293a38bb286df3644157109
Raw
1module sourcemap
2
3fn test_simple() {
4 mut sg := generate_empty_map()
5 mut sm := sg.add_map('hello.js', '/', true, 0, 0)
6 sm.set_source_content('hello.v', "fn main(){nprintln('Hello World! Helo \$a')\n}")
7
8 mlist := [
9 MappingInput{
10 GenPosition: GenPosition{
11 gen_line: 1
12 gen_column: 0
13 }
14 name: ''
15 source_position: SourcePosition{
16 source_line: 1
17 source_column: 0
18 }
19 },
20 MappingInput{
21 GenPosition: GenPosition{
22 gen_line: 2
23 gen_column: 0
24 }
25 name: ''
26 source_position: SourcePosition{
27 source_line: 1
28 source_column: 0
29 }
30 },
31 MappingInput{
32 GenPosition: GenPosition{
33 gen_line: 2
34 gen_column: 2
35 }
36 name: ''
37 source_position: SourcePosition{
38 source_line: 1
39 source_column: 0
40 }
41 },
42 MappingInput{
43 GenPosition: GenPosition{
44 gen_line: 2
45 gen_column: 9
46 }
47 name: ''
48 source_position: SourcePosition{
49 source_line: 1
50 source_column: 7
51 }
52 },
53 MappingInput{
54 GenPosition: GenPosition{
55 gen_line: 2
56 gen_column: 10
57 }
58 name: 'hello_name'
59 source_position: SourcePosition{
60 source_line: 1
61 source_column: 8
62 }
63 },
64 MappingInput{
65 GenPosition: GenPosition{
66 gen_line: 2
67 gen_column: 13
68 }
69 name: ''
70 source_position: SourcePosition{
71 source_line: 1
72 source_column: 0
73 }
74 },
75 MappingInput{
76 GenPosition: GenPosition{
77 gen_line: 2
78 gen_column: 14
79 }
80 name: ''
81 source_position: SourcePosition{
82 source_line: 1
83 source_column: 12
84 }
85 },
86 MappingInput{
87 GenPosition: GenPosition{
88 gen_line: 2
89 gen_column: 27
90 }
91 name: ''
92 source_position: SourcePosition{
93 source_line: 1
94 source_column: 0
95 }
96 },
97 MappingInput{
98 GenPosition: GenPosition{
99 gen_line: 2
100 gen_column: 28
101 }
102 name: ''
103 source_position: SourcePosition{
104 source_line: 1
105 source_column: 0
106 }
107 },
108 MappingInput{
109 GenPosition: GenPosition{
110 gen_line: 2
111 gen_column: 29
112 }
113 name: ''
114 source_position: SourcePosition{
115 source_line: 1
116 source_column: 0
117 }
118 },
119 MappingInput{
120 GenPosition: GenPosition{
121 gen_line: 3
122 gen_column: 0
123 }
124 name: ''
125 source_position: SourcePosition{
126 source_line: 1
127 source_column: 0
128 }
129 },
130 ]
131 sm.add_mapping_list('hello.v', mlist) or { panic('x') }
132
133 json_data := sm.to_json()
134
135 expected := '{"version":3,"file":"hello.js","sourceRoot":"/","sources":["hello.v"],"sourcesContent":["fn main(){nprintln(\'Hello World! Helo \$a\')\\n}"],"names":["hello_name"],"mappings":"AAAA;AAAA,EAAA,OAAO,CAACA,GAAR,CAAY,aAAZ,CAAA,CAAA;AAAA"}'
136 assert json_data.str() == expected
137}
138
139fn test_source_null() {
140 mut sg := generate_empty_map()
141 mut sm := sg.add_map('hello.js', '/', true, 0, 0)
142 sm.add_mapping('hello.v', SourcePosition{
143 source_line: 0
144 source_column: 0
145 }, 1, 1, '')
146 sm.add_mapping('hello_lib1.v', SourcePosition{
147 source_line: 0
148 source_column: 0
149 }, 2, 1, '')
150 sm.add_mapping('hello_lib2.v', SourcePosition{
151 source_line: 0
152 source_column: 0
153 }, 3, 1, '')
154 json_data := sm.to_json()
155
156 expected := '{"version":3,"file":"hello.js","sourceRoot":"/","sources":["hello.v","hello_lib1.v","hello_lib2.v"],"sourcesContent":[null,null,null],"names":[],"mappings":"CA+/////HA;CCAA;CCAA"}'
157 assert json_data.str() == expected
158}
159