blob: 54cd26328ce358099b56f0b6eecb836a87b6fe12 [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:codesize/queries/index.dart';
import 'package:codesize/queries/mock_query.dart';
import 'package:codesize/render/ast.dart';
import 'package:codesize/render/terminal.dart';
import 'package:test/test.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'));
});
});
}