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() { FileSystem fileSystem; setUp(() { fileSystem = new 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 = new CodeBuffer(); var scope = new SymbolTable(); const jael.Renderer().render(processed, buf, scope); print(buf); expect( buf.toString(), ''' a.jl ''' .trim()); }); }