Skip to content
This repository was archived by the owner on Aug 28, 2024. It is now read-only.

Commit 6c665ac

Browse files
committed
Improve resolver test coverage
1 parent 3f840f5 commit 6c665ac

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

test/resolver_test.dart

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,18 @@ void main() {
4242
d.file('foo.dart', 'final foo = "bar";'),
4343
]),
4444
]).create();
45+
46+
await d.dir('sdk', [
47+
d.dir('io', [
48+
d.file('io.dart', 'final io = "hello";'),
49+
]),
50+
d.dir('io_patch', [
51+
d.file('io.dart', 'final patch = true;'),
52+
]),
53+
d.dir('io_dev', [
54+
d.file('io.dart', 'final dev = true;'),
55+
]),
56+
]).create();
4557
});
4658

4759
test('can be created from a package_config.json', () async {
@@ -68,6 +80,41 @@ void main() {
6880
d.sandbox, 'foo', '.dart_tool', 'bad_package_config.json')),
6981
throwsA(isA<FormatException>()));
7082
});
83+
84+
test('resolves dart: URIs', () async {
85+
final resolver = await Resolver.create(
86+
packagePath: p.join(d.sandbox, 'foo'),
87+
sdkRoot: p.join(d.sandbox, 'sdk'));
88+
expect(resolver.resolve('dart:io'),
89+
p.join(d.sandbox, 'sdk', 'io', 'io.dart'));
90+
expect(resolver.resolve('dart:io-patch/io.dart'), null);
91+
expect(resolver.resolve('dart:io-dev/io.dart'),
92+
p.join(d.sandbox, 'sdk', 'io_dev', 'io.dart'));
93+
});
94+
95+
test('cannot resolve SDK URIs if sdkRoot is null', () async {
96+
final resolver =
97+
await Resolver.create(packagePath: p.join(d.sandbox, 'foo'));
98+
expect(resolver.resolve('dart:convert'), null);
99+
});
100+
101+
test('cannot resolve package URIs if packagePath is null', () async {
102+
// ignore: deprecated_member_use_from_same_package
103+
final resolver = Resolver();
104+
expect(resolver.resolve('package:foo/foo.dart'), null);
105+
});
106+
107+
test('cannot resolve package URIs if packagePath is not found', () async {
108+
final resolver =
109+
await Resolver.create(packagePath: p.join(d.sandbox, 'foo'));
110+
expect(resolver.resolve('package:baz/baz.dart'), null);
111+
});
112+
113+
test('cannot resolve unexpected URI schemes', () async {
114+
final resolver =
115+
await Resolver.create(packagePath: p.join(d.sandbox, 'foo'));
116+
expect(resolver.resolve('thing:foo/foo.dart'), null);
117+
});
71118
});
72119

73120
group('Bazel resolver', () {

0 commit comments

Comments
 (0)