blob: ac93bc5c0b3585984c60bd26274337c88e21803d [file] [log] [blame]
// 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'));
});
});
}