Fix autocomplete tests

This commit is contained in:
Simon Binder 2019-10-21 17:27:38 +02:00
parent 8de2b141a9
commit e553d37de6
No known key found for this signature in database
GPG Key ID: 7891917E4147B8C0
3 changed files with 19 additions and 3 deletions

View File

@ -27,4 +27,9 @@ class Suggestion {
final int relevance;
Suggestion(this.code, this.relevance);
@override
String toString() {
return 'Suggestion($code, $relevance)';
}
}

View File

@ -114,6 +114,7 @@ abstract class ParserBase {
}
bool _check(TokenType type) {
if (_reportAutoComplete) _suggestHintForToken(type);
if (_isAtEnd) return false;
return _peek.type == type;
}

View File

@ -3,14 +3,24 @@ import 'package:sqlparser/src/engine/autocomplete/engine.dart';
import 'package:test/test.dart';
void main() {
test('suggests a CREATE TABLE statements for an empty file', () {
test('suggests a CREATE an empty file', () {
final engine = SqlEngine(useMoorExtensions: true);
final parseResult = engine.parseMoorFile('');
final suggestions = parseResult.autoCompleteEngine.suggestCompletions(0);
expect(suggestions.anchor, 0);
expect(suggestions.suggestions, contains(hasCode('CREATE TABLE')));
expect(suggestions.suggestions, contains(hasCode('CREATE')));
});
test('suggests CREATE TABLE completion after CREATE', () async {
final engine = SqlEngine(useMoorExtensions: true);
final parseResult = engine.parseMoorFile('CREATE ');
final suggestions = parseResult.autoCompleteEngine.suggestCompletions(7);
expect(suggestions.anchor, 7);
expect(suggestions.suggestions, contains(hasCode('TABLE')));
});
test('suggests completions for started expressions', () {
@ -20,7 +30,7 @@ void main() {
final suggestions = parseResult.autoCompleteEngine.suggestCompletions(0);
expect(suggestions.anchor, 0);
expect(suggestions.suggestions, contains(hasCode('CREATE TABLE')));
expect(suggestions.suggestions, contains(hasCode('CREATE')));
});
}