mirror of https://github.com/AMT-Cheif/drift.git
47 lines
1.2 KiB
Dart
47 lines
1.2 KiB
Dart
import 'package:sqlparser/sqlparser.dart';
|
|
import 'package:sqlparser/src/engine/autocomplete/engine.dart';
|
|
import 'package:test/test.dart';
|
|
|
|
import '../../analysis/data.dart';
|
|
import 'utils.dart';
|
|
|
|
void main() {
|
|
group('suggests table name', () {
|
|
test('after SELECT FROM', () {
|
|
expect(_compute('a: SELECT * FROM ^'), suggestsTables);
|
|
});
|
|
|
|
test('in join', () {
|
|
expect(_compute('a: SELECT * FROM demo INNER JOIN ^;'), suggestsTables);
|
|
});
|
|
|
|
test('after update', () {
|
|
expect(_compute('a: UPDATE ^ SET'), suggestsTables);
|
|
});
|
|
|
|
test('after insert', () {
|
|
expect(_compute('a: INSERT INTO ^;'), suggestsTables);
|
|
});
|
|
|
|
test('in index', () {
|
|
final suggestion = _compute('CREATE INDEX IF NOT EXISTS name ON ^ (id)');
|
|
expect(suggestion, suggestsTables);
|
|
});
|
|
|
|
test('in triger', () {
|
|
final suggestion = _compute('CREATE TRIGGER name BEFORE DELETE ON ^');
|
|
expect(suggestion, suggestsTables);
|
|
});
|
|
});
|
|
}
|
|
|
|
ComputedSuggestions _compute(String moorFile) {
|
|
return completionsFor(moorFile, setup: _setupEngine);
|
|
}
|
|
|
|
void _setupEngine(SqlEngine engine) {
|
|
engine..registerTable(demoTable)..registerTable(anotherTable);
|
|
}
|
|
|
|
Matcher get suggestsTables => suggestsAll(['demo', 'tbl', 'sqlite_master']);
|