drift/sqlparser/test/engine/autocomplete/static_test.dart

46 lines
1.2 KiB
Dart

import 'package:sqlparser/src/engine/autocomplete/engine.dart';
import 'package:test/test.dart';
import 'utils.dart';
void main() {
test('suggests a CREATE an empty file', () {
final suggestions = completionsFor('^');
expect(suggestions.anchor, 0);
expect(suggestions, suggests('CREATE'));
});
test('suggests CREATE TABLE completion after CREATE', () async {
final suggestions = completionsFor('CREATE ^');
expect(suggestions.anchor, 7);
expect(suggestions, suggests('TABLE'));
});
test('suggests completions for started keywords', () {
final suggestions = completionsFor('creat^');
expect(suggestions.anchor, 0);
expect(suggestions, suggests('CREATE'));
});
}
dynamic hasCode(dynamic code) => SuggestionWithCode(code);
class SuggestionWithCode extends Matcher {
final Matcher codeMatcher;
SuggestionWithCode(dynamic code) : codeMatcher = wrapMatcher(code);
@override
Description describe(Description description) {
return description.add('suggests ').addDescriptionOf(codeMatcher);
}
@override
bool matches(dynamic item, Map matchState) {
return item is Suggestion && codeMatcher.matches(item.code, matchState);
}
}