mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-08-23 08:30:21 +08:00
122 lines
3.7 KiB
Dart
122 lines
3.7 KiB
Dart
/*
|
|
* SPDX-FileCopyrightText: 2019-2021 Vishesh Handa <me@vhanda.in>
|
|
*
|
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
*/
|
|
|
|
import 'package:test/test.dart';
|
|
|
|
import 'package:gitjournal/editors/heuristics.dart';
|
|
import 'lib.dart';
|
|
|
|
void main() {
|
|
setUpAll(gjSetupAllTests);
|
|
|
|
group('Editor Heuristic Tests', () {
|
|
test('Does not modify test on newline', () {
|
|
var origText = "Hello";
|
|
var newText = '$origText\n';
|
|
|
|
var result = autoAddBulletList(origText, newText, newText.length);
|
|
expect(result, null);
|
|
});
|
|
|
|
test('Adds a bullet point at the end', () {
|
|
var origText = "Hello\n* One";
|
|
var newText = '$origText\n';
|
|
|
|
var result = autoAddBulletList(origText, newText, newText.length)!;
|
|
expect(result.text, "Hello\n* One\n* ");
|
|
expect(result.cursorPos, result.text.length);
|
|
});
|
|
|
|
test('Adds a bullet point in the middle', () {
|
|
var origText = "Hello\n* One\n* Three";
|
|
var newText = "Hello\n* One\n\n* Three";
|
|
|
|
var result = autoAddBulletList(origText, newText, 12)!;
|
|
expect(result.text, "Hello\n* One\n* \n* Three");
|
|
expect(result.cursorPos, 14);
|
|
});
|
|
|
|
test('Adds a numbered list at the end', () {
|
|
var origText = "Hello\n1. One";
|
|
var newText = '$origText\n';
|
|
|
|
var result = autoAddBulletList(origText, newText, newText.length)!;
|
|
expect(result.text, "Hello\n1. One\n2. ");
|
|
expect(result.cursorPos, result.text.length);
|
|
});
|
|
|
|
test('Pressing enter on an empty list removes it', () {
|
|
var origText = "Hello\n* One\n* ";
|
|
var newText = '$origText\n';
|
|
|
|
var result = autoAddBulletList(origText, newText, newText.length)!;
|
|
expect(result.text, "Hello\n* One\n");
|
|
expect(result.cursorPos, result.text.length);
|
|
});
|
|
|
|
test('Pressing enter on an empty list removes it - in the middle', () {
|
|
var origText = "Hello\n* One\n* Fire";
|
|
var newText = "Hello\n* One\n* \nFire";
|
|
|
|
var result = autoAddBulletList(origText, newText, 15)!;
|
|
expect(result.text, "Hello\n* One\nFire");
|
|
expect(result.cursorPos, 12);
|
|
});
|
|
|
|
test('Does not add a bullet point without spaces', () {
|
|
var origText = "*One";
|
|
var newText = '$origText\n';
|
|
|
|
var result = autoAddBulletList(origText, newText, newText.length);
|
|
expect(result, null);
|
|
});
|
|
|
|
test('Adds a bullet point with many spaces', () {
|
|
var origText = "* One";
|
|
var newText = '$origText\n';
|
|
|
|
var result = autoAddBulletList(origText, newText, newText.length)!;
|
|
expect(result.text, "* One\n* ");
|
|
expect(result.cursorPos, result.text.length);
|
|
});
|
|
|
|
test('Adds a numbered list in the first line', () {
|
|
var origText = "1. Hello";
|
|
var newText = '$origText\n';
|
|
|
|
var result = autoAddBulletList(origText, newText, newText.length)!;
|
|
expect(result.text, "1. Hello\n2. ");
|
|
expect(result.cursorPos, result.text.length);
|
|
});
|
|
|
|
test('Adds a bullet point with many spaces - in the middle', () {
|
|
var origText = "* One\nFire";
|
|
var newText = "* One\n\nFire";
|
|
|
|
var result = autoAddBulletList(origText, newText, 8)!;
|
|
expect(result.text, "* One\n* \nFire");
|
|
expect(result.cursorPos, 12);
|
|
});
|
|
|
|
test('Works with item with spaces', () {
|
|
var origText = "* Hi There";
|
|
var newText = '$origText\n';
|
|
|
|
var result = autoAddBulletList(origText, newText, newText.length)!;
|
|
expect(result.text, "* Hi There\n* ");
|
|
expect(result.cursorPos, result.text.length);
|
|
});
|
|
|
|
test('Triple dashs', () {
|
|
var origText = "---";
|
|
var newText = '$origText\n';
|
|
|
|
var result = autoAddBulletList(origText, newText, newText.length);
|
|
expect(result, null);
|
|
});
|
|
});
|
|
}
|