diff --git a/drift_dev/test/writer/data_class_writer_test.dart b/drift_dev/test/writer/data_class_writer_test.dart index e0bd72fb..a8245fdc 100644 --- a/drift_dev/test/writer/data_class_writer_test.dart +++ b/drift_dev/test/writer/data_class_writer_test.dart @@ -267,6 +267,56 @@ extension ItemToInsertable on i1.Item { result.writer, ); }); + + test( + 'It should use the provided names for the data classes and the companion class', + () async { + final writer = await emulateDriftBuild( + inputs: const { + 'a|lib/main.dart': r''' +import 'package:drift/drift.dart'; + +part 'main.drift.dart'; + +@DataClassName('FirstDataClass', companion: 'FirstCompanionClass') +class FirstTable extends Table { + TextColumn get foo => text()(); + IntColumn get bar => integer()(); +} + +@DataClassName.custom(name: 'SecondDataClass', companion: 'SecondCompanionClass') +class SecondTable extends Table { + TextColumn get foo => text()(); + IntColumn get bar => integer()(); +} + +@DriftDatabase( + tables: [FirstTable, SecondTable], +) +class Database extends _$Database {} +''' + }, + ); + + checkOutputs({ + 'a|lib/main.drift.dart': decodedMatches(allOf([ + contains( + 'class FirstDataClass extends DataClass implements Insertable {', + ), + contains( + 'class FirstTableCompanion extends UpdateCompanion {', + ), + contains( + 'class SecondDataClass extends DataClass implements Insertable {', + ), + contains( + 'class SecondTableCompanion extends UpdateCompanion {', + ), + ])), + }, writer.dartOutputs, writer.writer); + }, + tags: 'analyzer', + ); } class _GeneratesConstDataClasses extends Matcher {