From 025bb7c44bae385694cce2b27f5d355267d199c5 Mon Sep 17 00:00:00 2001 From: Daniel Brauner <44034965+LeFrosch@users.noreply.github.com> Date: Mon, 12 Sep 2022 19:05:45 +0200 Subject: [PATCH] Generated functions for returning queries return Iterable<_> instead of List<_> (#2044) * fix for missing toList * removed unnecessary toList --- .../lib/src/writer/queries/query_writer.dart | 2 +- .../writer/queries/query_writer_test.dart | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/drift_dev/lib/src/writer/queries/query_writer.dart b/drift_dev/lib/src/writer/queries/query_writer.dart index 3cad971a..45baaaa8 100644 --- a/drift_dev/lib/src/writer/queries/query_writer.dart +++ b/drift_dev/lib/src/writer/queries/query_writer.dart @@ -222,7 +222,7 @@ class QueryWriter { } else { _buffer.write('rows.map('); _writeMappingLambda(update); - _buffer.write(')'); + _buffer.write(').toList()'); } _buffer.write(');\n}'); } diff --git a/drift_dev/test/writer/queries/query_writer_test.dart b/drift_dev/test/writer/queries/query_writer_test.dart index 32e98774..aa2bc5a3 100644 --- a/drift_dev/test/writer/queries/query_writer_test.dart +++ b/drift_dev/test/writer/queries/query_writer_test.dart @@ -82,6 +82,28 @@ void main() { ); }); + test('generates correct returning mapping', () async { + final state = TestState.withContent({ + 'a|lib/main.moor': ''' + CREATE TABLE tbl ( + id INTEGER, + text TEXT + ); + + query: INSERT INTO tbl (id, text) VALUES(10, "test") RETURNING id; + ''', + }); + addTearDown(state.close); + + final file = await state.analyze('package:a/main.moor'); + final fileState = file.currentResult as ParsedDriftFile; + + final writer = Writer(const DriftOptions.defaults()); + QueryWriter(writer.child()).write(fileState.resolvedQueries!.single); + + expect(writer.writeGenerated(), contains('.toList()')); + }); + group('generates correct code for expanded arrays', () { late TestState state;