Skip to content

Commit 46eb3d1

Browse files
committed
Fix test.
1 parent eb0c253 commit 46eb3d1

File tree

2 files changed

+23
-72
lines changed

2 files changed

+23
-72
lines changed

example/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ environment:
66
sdk: ^3.7.0
77

88
dependencies:
9-
analyzer: '>=7.4.0 <9.0.0'
9+
analyzer: '>=8.1.1 <9.0.0'
1010
build: '>=3.0.0 <5.0.0'
1111
source_gen: any
1212

source_gen/test/generator_for_annotation_test.dart

Lines changed: 22 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
@Timeout.factor(3)
77
library;
88

9-
import 'package:analyzer/dart/analysis/utilities.dart';
10-
import 'package:analyzer/dart/ast/ast.dart';
119
import 'package:analyzer/dart/element/element.dart';
1210
import 'package:build/build.dart';
1311
import 'package:build_test/build_test.dart';
@@ -104,32 +102,36 @@ $dartFormatWidth
104102
final builder = LibraryBuilder(
105103
_StubGenerator<Deprecated>('Deprecated', elementBehavior: (_) => null),
106104
);
107-
final input = AssetId('a', 'lib/a.dart');
108-
final assets = {
109-
input: '''
105+
final result = await testBuilder(builder, {
106+
'a|lib/a.dart': '''
110107
@Deprecated()
111108
@deprecated
112109
@override
113110
@pragma('')
114111
main() {}''',
115-
};
116-
117-
final readerWriter =
118-
TestReaderWriter()..testing.writeString(input, assets[input]!);
112+
});
119113

120-
final resolver = _TestingResolver(assets);
114+
expect(result.readerWriter.testing.resolverEntrypointsTracked, isEmpty);
115+
});
121116

122-
await runBuilder(
123-
builder,
124-
[input],
125-
readerWriter,
126-
readerWriter,
127-
_FixedResolvers(resolver),
128-
);
117+
test(
118+
'Does resolve the library if there is an interesting top level annotation',
119+
() async {
120+
final builder = LibraryBuilder(
121+
_StubGenerator<Deprecated>('Deprecated', elementBehavior: (_) => null),
122+
);
123+
final result = await testBuilder(builder, {
124+
'a|lib/a.dart': '''
125+
@override
126+
@someInterestingAnnotation
127+
main() {}''',
128+
});
129129

130-
expect(resolver.parsedUnits, {input});
131-
expect(resolver.resolvedLibs, isEmpty);
132-
});
130+
expect(result.readerWriter.testing.resolverEntrypointsTracked, {
131+
AssetId('a', 'lib/a.dart'),
132+
});
133+
},
134+
);
133135

134136
test('applies to annotated libraries', () async {
135137
final builder = LibraryBuilder(
@@ -308,54 +310,3 @@ const _inputMap = {
308310
final baz = 'baz';
309311
''',
310312
};
311-
312-
class _TestingResolver implements ReleasableResolver {
313-
final Map<AssetId, String> assets;
314-
final parsedUnits = <AssetId>{};
315-
final resolvedLibs = <AssetId>{};
316-
317-
_TestingResolver(this.assets);
318-
319-
@override
320-
Future<CompilationUnit> compilationUnitFor(
321-
AssetId assetId, {
322-
bool allowSyntaxErrors = false,
323-
}) async {
324-
parsedUnits.add(assetId);
325-
return parseString(content: assets[assetId]!).unit;
326-
}
327-
328-
@override
329-
Future<bool> isLibrary(AssetId assetId) async {
330-
final unit = await compilationUnitFor(assetId);
331-
return unit.directives.every((d) => d is! PartOfDirective);
332-
}
333-
334-
@override
335-
Future<LibraryElement> libraryFor(
336-
AssetId assetId, {
337-
bool allowSyntaxErrors = false,
338-
}) async {
339-
resolvedLibs.add(assetId);
340-
throw StateError('This method intentionally throws');
341-
}
342-
343-
@override
344-
void release() {}
345-
346-
@override
347-
void noSuchMethod(_) => throw UnimplementedError();
348-
}
349-
350-
class _FixedResolvers implements Resolvers {
351-
final ReleasableResolver _resolver;
352-
353-
_FixedResolvers(this._resolver);
354-
355-
@override
356-
Future<ReleasableResolver> get(BuildStep buildStep) =>
357-
Future.value(_resolver);
358-
359-
@override
360-
void reset() {}
361-
}

0 commit comments

Comments
 (0)