Compare commits
2
Commits
d2e65d8821
...
155af91e66
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
155af91e66 | ||
|
|
eb32422e05 |
@@ -169,15 +169,6 @@ void registerPqlCommands(DaemonDispatcher d, PqlClient pql) {
|
||||
}
|
||||
});
|
||||
|
||||
d.register('pql.decisions.coverage', (req) async {
|
||||
try {
|
||||
final gaps = await pql.decisionCoverage();
|
||||
return IpcResponse.ok(id: req.id, data: {'gaps': gaps});
|
||||
} on PqlException catch (e) {
|
||||
return _pqlError(req.id, e);
|
||||
}
|
||||
});
|
||||
|
||||
d.register('pql.tickets.list', (req) async {
|
||||
try {
|
||||
final results = await pql.ticketList(
|
||||
|
||||
@@ -106,10 +106,6 @@ class PqlClient {
|
||||
return _runObject(['decisions', 'read', id]);
|
||||
}
|
||||
|
||||
Future<List<Map<String, Object?>>> decisionCoverage() async {
|
||||
return _runList(['decisions', 'coverage']);
|
||||
}
|
||||
|
||||
Future<List<Map<String, Object?>>> ticketList({
|
||||
String? status,
|
||||
String? team,
|
||||
|
||||
@@ -95,13 +95,6 @@ void main() {
|
||||
expect(r.error!.kind, 'user_error');
|
||||
});
|
||||
|
||||
test('pql.decisions.coverage returns gaps', () async {
|
||||
await call('pql.decisions.sync');
|
||||
final r = await call('pql.decisions.coverage');
|
||||
expect(r.ok, isTrue);
|
||||
expect(r.data.containsKey('gaps'), isTrue);
|
||||
});
|
||||
|
||||
test('pql.tickets.board returns columns', () async {
|
||||
final r = await call('pql.tickets.board');
|
||||
expect(r.ok, isTrue);
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
/// Closeout tests for the last single-digit-uncovered lines in
|
||||
/// `lib/src/terminal/`: pointer_input constructors, the abstract
|
||||
/// TerminalMouseHandler constructor, the reflow padding branch in
|
||||
/// Buffer.resize, and the wide-char skip branch in
|
||||
/// TerminalPainter.paintLine.
|
||||
library;
|
||||
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:clide/src/terminal/src/core/mouse/handler.dart';
|
||||
import 'package:clide/src/terminal/src/terminal.dart';
|
||||
import 'package:clide/src/terminal/src/ui/painter.dart';
|
||||
import 'package:clide/src/terminal/src/ui/pointer_input.dart';
|
||||
import 'package:clide/src/terminal/src/ui/terminal_text_style.dart';
|
||||
import 'package:clide/src/terminal/src/ui/themes.dart';
|
||||
import 'package:flutter/painting.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
class _StubMouseHandler extends TerminalMouseHandler {
|
||||
const _StubMouseHandler();
|
||||
@override
|
||||
String? call(TerminalMouseEvent event) => null;
|
||||
}
|
||||
|
||||
void main() {
|
||||
test('PointerInputs.none / .all produce expected sets', () {
|
||||
expect(const PointerInputs.none().inputs, isEmpty);
|
||||
expect(const PointerInputs.all().inputs, containsAll(PointerInput.values));
|
||||
});
|
||||
|
||||
test('TerminalMouseHandler abstract const constructor is reachable via a subclass', () {
|
||||
const h = _StubMouseHandler();
|
||||
expect(h, isA<TerminalMouseHandler>());
|
||||
});
|
||||
|
||||
test('Buffer.resize pads reflow output up to the new height', () {
|
||||
final t = Terminal(maxLines: 200, onOutput: (_) {});
|
||||
// Write content narrower than the new width — reflow should produce
|
||||
// fewer lines than newHeight, triggering the pad-with-empty-lines
|
||||
// branch in buffer.dart.
|
||||
t.write('abc\r\n');
|
||||
// Resize to a wide + tall viewport.
|
||||
t.resize(40, 50, 8, 16);
|
||||
expect(t.buffer.lines.length, greaterThanOrEqualTo(50));
|
||||
});
|
||||
|
||||
test('TerminalPainter.paintLine handles wide (CJK) cells without skipping the skip', () {
|
||||
final t = Terminal(maxLines: 100, onOutput: (_) {});
|
||||
// CJK ideograph — terminal stores it as a width-2 cell, so paintLine
|
||||
// advances `i` twice and the wide-char branch fires.
|
||||
t.write('漢字');
|
||||
final p = TerminalPainter(
|
||||
theme: TerminalThemes.defaultTheme,
|
||||
textStyle: const TerminalStyle(),
|
||||
textScaler: const TextScaler.linear(1.0),
|
||||
);
|
||||
p.paintLine(Canvas(PictureRecorder()), Offset.zero, t.buffer.lines[0]);
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user