| // Copyright 2020 The Fuchsia Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| import 'package:test/test.dart'; | |
| import '../queries/index.dart'; | |
| import '../queries/mock_query.dart'; | |
| import 'ast.dart'; | |
| import 'terminal.dart'; | |
| void main() { | |
| final renderer = TerminalRenderer(supportsControlCharacters: false); | |
| group('TerminalRenderer', () { | |
| test('One Level', () { | |
| final output = StringBuffer(); | |
| renderer.render(output, [ | |
| MockQuery([ | |
| Node.plain('[Title 1]'), | |
| Node.plain('[Title 2]'), | |
| ]) | |
| ]); | |
| expect( | |
| output.toString(), | |
| equals( | |
| '── MockQuery ──────────────────────────────────────────────────────────────────\n' | |
| '└─ [Title 1]\n' | |
| '└─ [Title 2]\n' | |
| '\n')); | |
| }); | |
| test('Two Levels', () { | |
| final output = StringBuffer(); | |
| renderer.render(output, [ | |
| MockQuery([ | |
| Node<SizeRecord>( | |
| title: SizeRecord( | |
| name: StyledString.plain('[Title 1]'), tally: Tally(0, 42)), | |
| children: [Node.plain('[Child]')]), | |
| Node.plain('[Title 2]'), | |
| ]) | |
| ]); | |
| expect( | |
| output.toString(), | |
| equals( | |
| '── MockQuery ──────────────────────────────────────────────────────────────────\n' | |
| '└─ [Title 1]: 0 B (0), 42 total symbols\n' | |
| '│ [Child]\n' | |
| '└─ [Title 2]\n' | |
| '\n')); | |
| }); | |
| test('Three Levels', () { | |
| final output = StringBuffer(); | |
| renderer.render(output, [ | |
| MockQuery([ | |
| Node<SizeRecord>( | |
| title: SizeRecord( | |
| name: StyledString.plain('[Title 1]'), tally: Tally(0, 42)), | |
| children: [ | |
| Node<StyledString>( | |
| title: StyledString.plain('[Child]'), | |
| children: [Node.plain('[Nested Child]')]) | |
| ]), | |
| Node.plain('[Title 2]'), | |
| ]) | |
| ]); | |
| expect( | |
| output.toString(), | |
| equals( | |
| '── MockQuery ──────────────────────────────────────────────────────────────────\n' | |
| '└─ [Title 1]: 0 B (0), 42 total symbols\n' | |
| '│ [Child]\n' | |
| '│ [Nested Child]\n' | |
| '└─ [Title 2]\n' | |
| '\n')); | |
| }); | |
| }); | |
| } |