test: Add a test with overridden companion classes

This commit is contained in:
ValentinVignal 2024-03-06 21:00:26 +08:00
parent d768ceeb1a
commit d0ff1f29d6
No known key found for this signature in database
GPG Key ID: 040FFDADFB7EF05A
1 changed files with 50 additions and 0 deletions

View File

@ -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<FirstDataClass> {',
),
contains(
'class FirstTableCompanion extends UpdateCompanion<FirstDataClass> {',
),
contains(
'class SecondDataClass extends DataClass implements Insertable<SecondDataClass> {',
),
contains(
'class SecondTableCompanion extends UpdateCompanion<SecondDataClass> {',
),
])),
}, writer.dartOutputs, writer.writer);
},
tags: 'analyzer',
);
}
class _GeneratesConstDataClasses extends Matcher {