import 'package:code_buffer/code_buffer.dart'; import 'package:file/file.dart'; import 'package:file/memory.dart'; import 'package:jael/jael.dart' as jael; import 'package:jael_preprocessor/jael_preprocessor.dart' as jael; import 'package:symbol_table/symbol_table.dart'; import 'package:test/test.dart'; main() { late FileSystem fileSystem; setUp(() { fileSystem = MemoryFileSystem(); // a.jl fileSystem.file('a.jl').writeAsStringSync('a.jl'); // b.jl fileSystem.file('b.jl').writeAsStringSync(''); // c.jl fileSystem.file('c.jl').writeAsStringSync(''); }); test('includes are expanded', () async { var file = fileSystem.file('c.jl'); var original = jael.parseDocument(await file.readAsString(), sourceUrl: file.uri, onError: (e) => throw e)!; var processed = await jael.resolveIncludes(original, fileSystem.directory(fileSystem.currentDirectory), (e) => throw e); var buf = CodeBuffer(); var scope = SymbolTable(); const jael.Renderer().render(processed!, buf, scope); print(buf); expect( buf.toString(), ''' a.jl ''' .trim()); }); }