nc-photos/codegen_build/test/np_log_test.dart
2024-05-21 01:09:07 +08:00

63 lines
1.4 KiB
Dart

import 'package:np_codegen_build/src/np_log_generator.dart';
import 'package:test/test.dart';
import 'util.dart';
// dummy class to free us from importing the actual logger library
class Logger {
Logger(String name);
}
void main() async {
await resolveCompilationUnit("test/src/np_log.dart");
tearDown(() {
// Increment this after each test so the next test has it's own package
_pkgCacheCount++;
});
test("NpLog", () async {
final src = _genSrc("""
@npLog
class Foo {}
""");
final expected = _genExpected(r"""
extension _$FooNpLog on Foo {
// ignore: unused_element
Logger get _log => log;
static final log = Logger("test.Foo");
}
""");
return _buildTest(src, expected);
});
}
String _genSrc(String src) {
return """
import 'package:np_codegen/np_codegen.dart';
part 'test.g.dart';
$src
""";
}
String _genExpected(String src) {
return """// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'test.dart';
// **************************************************************************
// NpLogGenerator
// **************************************************************************
$src""";
}
Future _buildTest(String src, String expected) => buildTest(
generators: [const NpLogGenerator()],
pkgName: _pkgName,
src: src,
expected: expected,
);
String get _pkgName => 'pkg$_pkgCacheCount';
int _pkgCacheCount = 1;