|
2 | 2 | // for details. All rights reserved. Use of this source code is governed by a
|
3 | 3 | // BSD-style license that can be found in the LICENSE file.
|
4 | 4 |
|
| 5 | +import 'package:package_resolver/package_resolver.dart'; |
5 | 6 | import 'package:source_maps/source_maps.dart';
|
6 | 7 | import 'package:source_span/source_span.dart';
|
7 | 8 | import 'package:stack_trace/stack_trace.dart';
|
@@ -102,6 +103,53 @@ foo.dart.js 10:11 baz
|
102 | 103 | expect(frame.column, equals(4));
|
103 | 104 | });
|
104 | 105 |
|
| 106 | + test("uses package: URIs for frames within packageResolver.packageRoot", () { |
| 107 | + var trace = new Trace.parse("foo.dart.js 10 foo"); |
| 108 | + var builder = new SourceMapBuilder() |
| 109 | + ..addSpan( |
| 110 | + new SourceMapSpan.identifier( |
| 111 | + new SourceLocation(1, |
| 112 | + line: 1, column: 3, sourceUrl: "packages/foo/foo.dart"), |
| 113 | + "qux"), |
| 114 | + new SourceSpan( |
| 115 | + new SourceLocation(8, line: 5, column: 0), |
| 116 | + new SourceLocation(12, line: 9, column: 1), |
| 117 | + "\n" * 4)); |
| 118 | + |
| 119 | + var mapping = parseJson(builder.build("foo.dart.js.map")); |
| 120 | + var mappedTrace = _mapTrace(mapping, trace, |
| 121 | + packageResolver: new SyncPackageResolver.root("packages/")); |
| 122 | + var frame = mappedTrace.frames.first; |
| 123 | + expect(frame.uri, equals(Uri.parse("package:foo/foo.dart"))); |
| 124 | + expect(frame.line, equals(2)); |
| 125 | + expect(frame.column, equals(4)); |
| 126 | + }); |
| 127 | + |
| 128 | + test("uses package: URIs for frames within a packageResolver.packageMap URL", |
| 129 | + () { |
| 130 | + var trace = new Trace.parse("foo.dart.js 10 foo"); |
| 131 | + var builder = new SourceMapBuilder() |
| 132 | + ..addSpan( |
| 133 | + new SourceMapSpan.identifier( |
| 134 | + new SourceLocation(1, |
| 135 | + line: 1, column: 3, sourceUrl: "packages/foo/foo.dart"), |
| 136 | + "qux"), |
| 137 | + new SourceSpan( |
| 138 | + new SourceLocation(8, line: 5, column: 0), |
| 139 | + new SourceLocation(12, line: 9, column: 1), |
| 140 | + "\n" * 4)); |
| 141 | + |
| 142 | + var mapping = parseJson(builder.build("foo.dart.js.map")); |
| 143 | + var mappedTrace = _mapTrace(mapping, trace, |
| 144 | + packageResolver: new SyncPackageResolver.config({ |
| 145 | + "foo": Uri.parse("packages/foo") |
| 146 | + })); |
| 147 | + var frame = mappedTrace.frames.first; |
| 148 | + expect(frame.uri, equals(Uri.parse("package:foo/foo.dart"))); |
| 149 | + expect(frame.line, equals(2)); |
| 150 | + expect(frame.column, equals(4)); |
| 151 | + }); |
| 152 | + |
105 | 153 | test("uses dart: URIs for frames within sdkRoot", () {
|
106 | 154 | var trace = new Trace.parse("foo.dart.js 10 foo");
|
107 | 155 | var builder = new SourceMapBuilder()
|
@@ -198,17 +246,21 @@ foo.dart.js 10:11 baz
|
198 | 246 | /// Like [mapStackTrace], but is guaranteed to return a [Trace] so it can be
|
199 | 247 | /// inspected.
|
200 | 248 | Trace _mapTrace(Mapping sourceMap, StackTrace stackTrace,
|
201 |
| - {bool minified: false, packageRoot, sdkRoot}) { |
| 249 | + {bool minified: false, SyncPackageResolver packageResolver, sdkRoot, |
| 250 | + packageRoot}) { |
202 | 251 | return new Trace.from(mapStackTrace(sourceMap, stackTrace,
|
203 |
| - minified: minified, packageRoot: packageRoot, sdkRoot: sdkRoot)); |
| 252 | + minified: minified, packageResolver: packageResolver, sdkRoot: sdkRoot, |
| 253 | + packageRoot: packageRoot)); |
204 | 254 | }
|
205 | 255 |
|
206 | 256 | /// Like [mapStackTrace], but is guaranteed to return a [Chain] so it can be
|
207 | 257 | /// inspected.
|
208 | 258 | Chain _mapChain(Mapping sourceMap, StackTrace stackTrace,
|
209 |
| - {bool minified: false, packageRoot, sdkRoot}) { |
| 259 | + {bool minified: false, SyncPackageResolver packageResolver, sdkRoot, |
| 260 | + packageRoot}) { |
210 | 261 | return new Chain.forTrace(mapStackTrace(sourceMap, stackTrace,
|
211 |
| - minified: minified, packageRoot: packageRoot, sdkRoot: sdkRoot)); |
| 262 | + minified: minified, packageResolver: packageResolver, sdkRoot: sdkRoot, |
| 263 | + packageRoot: packageRoot)); |
212 | 264 | }
|
213 | 265 |
|
214 | 266 | /// Runs the mapper's prettification logic on [member] and returns the result.
|
|
0 commit comments