make language nullable
This commit is contained in:
@@ -27,7 +27,7 @@ class OwnUser extends User {
|
||||
Map<String, Object?> extraData = const {},
|
||||
bool banned = false,
|
||||
List<String> teams = const [],
|
||||
String language = 'en',
|
||||
String? language,
|
||||
}) : super(
|
||||
id: id,
|
||||
role: role,
|
||||
|
||||
@@ -39,6 +39,6 @@ OwnUser _$OwnUserFromJson(Map<String, dynamic> json) {
|
||||
teams:
|
||||
(json['teams'] as List<dynamic>?)?.map((e) => e as String).toList() ??
|
||||
[],
|
||||
language: json['language'] as String? ?? 'en',
|
||||
language: json['language'] as String,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ class User extends Equatable {
|
||||
this.extraData = const {},
|
||||
this.banned = false,
|
||||
this.teams = const [],
|
||||
this.language = 'en',
|
||||
this.language,
|
||||
}) : createdAt = createdAt ?? DateTime.now(),
|
||||
updatedAt = updatedAt ?? DateTime.now();
|
||||
|
||||
@@ -87,12 +87,8 @@ class User extends Equatable {
|
||||
/// The language this user prefers.
|
||||
///
|
||||
/// Defaults to 'en'.
|
||||
@JsonKey(
|
||||
includeIfNull: false,
|
||||
toJson: Serializer.readOnly,
|
||||
defaultValue: 'en',
|
||||
)
|
||||
final String language;
|
||||
@JsonKey(includeIfNull: false)
|
||||
final String? language;
|
||||
|
||||
/// Shortcut for user name
|
||||
String get name {
|
||||
|
||||
@@ -25,7 +25,7 @@ User _$UserFromJson(Map<String, dynamic> json) {
|
||||
teams:
|
||||
(json['teams'] as List<dynamic>?)?.map((e) => e as String).toList() ??
|
||||
[],
|
||||
language: json['language'] as String? ?? 'en',
|
||||
language: json['language'] as String?,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -48,6 +48,6 @@ Map<String, dynamic> _$UserToJson(User instance) {
|
||||
writeNotNull('online', readonly(instance.online));
|
||||
writeNotNull('banned', readonly(instance.banned));
|
||||
val['extra_data'] = instance.extraData;
|
||||
writeNotNull('language', readonly(instance.language));
|
||||
writeNotNull('language', instance.language);
|
||||
return val;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
import 'dart:async';
|
||||
import 'dart:typed_data';
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:golden_toolkit/golden_toolkit.dart';
|
||||
import 'package:golden_toolkit/src/testing_tools.dart';
|
||||
import 'package:path/path.dart' as path;
|
||||
|
||||
const double _kGoldenDiffTolerance = 0.05;
|
||||
|
||||
/// Wrapper function for golden tests.
|
||||
Future<void> customExpectGoldenMatches(
|
||||
WidgetTester tester,
|
||||
String name, {
|
||||
bool? autoHeight,
|
||||
Finder? finder,
|
||||
CustomPump? customPump,
|
||||
@Deprecated('''
|
||||
This method level parameter will be removed in an upcoming release. This can be configured globally. If you have concerns, please file an issue with your use case.''') bool? skip,
|
||||
}) {
|
||||
final goldenPath = path.join('test/src/goldens');
|
||||
print('goldenPath: $goldenPath');
|
||||
goldenFileComparator = CustomGoldenFileComparator(Uri.parse(goldenPath));
|
||||
|
||||
return compareWithGolden(
|
||||
tester,
|
||||
name,
|
||||
autoHeight: autoHeight,
|
||||
finder: finder,
|
||||
customPump: customPump,
|
||||
skip: skip,
|
||||
// This value is actually ignored. We are forced to pass it because the
|
||||
// downstream API is structured poorly. This should be refactored.
|
||||
device: Device.phone,
|
||||
fileNameFactory: (String name, Device device) =>
|
||||
GoldenToolkit.configuration.fileNameFactory(name),
|
||||
);
|
||||
}
|
||||
|
||||
class CustomGoldenFileComparator extends LocalFileComparator {
|
||||
CustomGoldenFileComparator(Uri testFile) : super(testFile);
|
||||
|
||||
@override
|
||||
Future<bool> compare(Uint8List imageBytes, Uri golden) async {
|
||||
print('golden.toString(): ${golden.toString()}');
|
||||
final result = await GoldenFileComparator.compareLists(
|
||||
imageBytes,
|
||||
await getGoldenBytes(golden),
|
||||
);
|
||||
|
||||
if (!result.passed && result.diffPercent > _kGoldenDiffTolerance) {
|
||||
final error = await generateFailureOutput(result, golden, basedir);
|
||||
throw FlutterError(error);
|
||||
}
|
||||
return result.passed;
|
||||
}
|
||||
}
|
||||
@@ -3105,7 +3105,7 @@ class UserEntity extends DataClass implements Insertable<UserEntity> {
|
||||
final String? role;
|
||||
|
||||
/// The language this user prefers.
|
||||
final String language;
|
||||
final String? language;
|
||||
|
||||
/// Date of user creation
|
||||
final DateTime createdAt;
|
||||
@@ -3127,7 +3127,7 @@ class UserEntity extends DataClass implements Insertable<UserEntity> {
|
||||
UserEntity(
|
||||
{required this.id,
|
||||
this.role,
|
||||
required this.language,
|
||||
this.language,
|
||||
required this.createdAt,
|
||||
required this.updatedAt,
|
||||
this.lastActive,
|
||||
@@ -3143,7 +3143,7 @@ class UserEntity extends DataClass implements Insertable<UserEntity> {
|
||||
role: const StringType()
|
||||
.mapFromDatabaseResponse(data['${effectivePrefix}role']),
|
||||
language: const StringType()
|
||||
.mapFromDatabaseResponse(data['${effectivePrefix}language'])!,
|
||||
.mapFromDatabaseResponse(data['${effectivePrefix}language']),
|
||||
createdAt: const DateTimeType()
|
||||
.mapFromDatabaseResponse(data['${effectivePrefix}created_at'])!,
|
||||
updatedAt: const DateTimeType()
|
||||
@@ -3165,7 +3165,9 @@ class UserEntity extends DataClass implements Insertable<UserEntity> {
|
||||
if (!nullToAbsent || role != null) {
|
||||
map['role'] = Variable<String?>(role);
|
||||
}
|
||||
map['language'] = Variable<String>(language);
|
||||
if (!nullToAbsent || language != null) {
|
||||
map['language'] = Variable<String?>(language);
|
||||
}
|
||||
map['created_at'] = Variable<DateTime>(createdAt);
|
||||
map['updated_at'] = Variable<DateTime>(updatedAt);
|
||||
if (!nullToAbsent || lastActive != null) {
|
||||
@@ -3186,7 +3188,7 @@ class UserEntity extends DataClass implements Insertable<UserEntity> {
|
||||
return UserEntity(
|
||||
id: serializer.fromJson<String>(json['id']),
|
||||
role: serializer.fromJson<String?>(json['role']),
|
||||
language: serializer.fromJson<String>(json['language']),
|
||||
language: serializer.fromJson<String?>(json['language']),
|
||||
createdAt: serializer.fromJson<DateTime>(json['createdAt']),
|
||||
updatedAt: serializer.fromJson<DateTime>(json['updatedAt']),
|
||||
lastActive: serializer.fromJson<DateTime?>(json['lastActive']),
|
||||
@@ -3201,7 +3203,7 @@ class UserEntity extends DataClass implements Insertable<UserEntity> {
|
||||
return <String, dynamic>{
|
||||
'id': serializer.toJson<String>(id),
|
||||
'role': serializer.toJson<String?>(role),
|
||||
'language': serializer.toJson<String>(language),
|
||||
'language': serializer.toJson<String?>(language),
|
||||
'createdAt': serializer.toJson<DateTime>(createdAt),
|
||||
'updatedAt': serializer.toJson<DateTime>(updatedAt),
|
||||
'lastActive': serializer.toJson<DateTime?>(lastActive),
|
||||
@@ -3214,7 +3216,7 @@ class UserEntity extends DataClass implements Insertable<UserEntity> {
|
||||
UserEntity copyWith(
|
||||
{String? id,
|
||||
Value<String?> role = const Value.absent(),
|
||||
String? language,
|
||||
Value<String?> language = const Value.absent(),
|
||||
DateTime? createdAt,
|
||||
DateTime? updatedAt,
|
||||
Value<DateTime?> lastActive = const Value.absent(),
|
||||
@@ -3224,7 +3226,7 @@ class UserEntity extends DataClass implements Insertable<UserEntity> {
|
||||
UserEntity(
|
||||
id: id ?? this.id,
|
||||
role: role.present ? role.value : this.role,
|
||||
language: language ?? this.language,
|
||||
language: language.present ? language.value : this.language,
|
||||
createdAt: createdAt ?? this.createdAt,
|
||||
updatedAt: updatedAt ?? this.updatedAt,
|
||||
lastActive: lastActive.present ? lastActive.value : this.lastActive,
|
||||
@@ -3283,7 +3285,7 @@ class UserEntity extends DataClass implements Insertable<UserEntity> {
|
||||
class UsersCompanion extends UpdateCompanion<UserEntity> {
|
||||
final Value<String> id;
|
||||
final Value<String?> role;
|
||||
final Value<String> language;
|
||||
final Value<String?> language;
|
||||
final Value<DateTime> createdAt;
|
||||
final Value<DateTime> updatedAt;
|
||||
final Value<DateTime?> lastActive;
|
||||
@@ -3316,7 +3318,7 @@ class UsersCompanion extends UpdateCompanion<UserEntity> {
|
||||
static Insertable<UserEntity> custom({
|
||||
Expression<String>? id,
|
||||
Expression<String?>? role,
|
||||
Expression<String>? language,
|
||||
Expression<String?>? language,
|
||||
Expression<DateTime>? createdAt,
|
||||
Expression<DateTime>? updatedAt,
|
||||
Expression<DateTime?>? lastActive,
|
||||
@@ -3340,7 +3342,7 @@ class UsersCompanion extends UpdateCompanion<UserEntity> {
|
||||
UsersCompanion copyWith(
|
||||
{Value<String>? id,
|
||||
Value<String?>? role,
|
||||
Value<String>? language,
|
||||
Value<String?>? language,
|
||||
Value<DateTime>? createdAt,
|
||||
Value<DateTime>? updatedAt,
|
||||
Value<DateTime?>? lastActive,
|
||||
@@ -3370,7 +3372,7 @@ class UsersCompanion extends UpdateCompanion<UserEntity> {
|
||||
map['role'] = Variable<String?>(role.value);
|
||||
}
|
||||
if (language.present) {
|
||||
map['language'] = Variable<String>(language.value);
|
||||
map['language'] = Variable<String?>(language.value);
|
||||
}
|
||||
if (createdAt.present) {
|
||||
map['created_at'] = Variable<DateTime>(createdAt.value);
|
||||
@@ -3426,10 +3428,8 @@ class $UsersTable extends Users with TableInfo<$UsersTable, UserEntity> {
|
||||
typeName: 'TEXT', requiredDuringInsert: false);
|
||||
final VerificationMeta _languageMeta = const VerificationMeta('language');
|
||||
late final GeneratedColumn<String?> language = GeneratedColumn<String?>(
|
||||
'language', aliasedName, false,
|
||||
typeName: 'TEXT',
|
||||
requiredDuringInsert: false,
|
||||
defaultValue: const Constant('en'));
|
||||
'language', aliasedName, true,
|
||||
typeName: 'TEXT', requiredDuringInsert: false);
|
||||
final VerificationMeta _createdAtMeta = const VerificationMeta('createdAt');
|
||||
late final GeneratedColumn<DateTime?> createdAt = GeneratedColumn<DateTime?>(
|
||||
'created_at', aliasedName, false,
|
||||
|
||||
@@ -12,7 +12,7 @@ class Users extends Table {
|
||||
TextColumn get role => text().nullable()();
|
||||
|
||||
/// The language this user prefers.
|
||||
TextColumn get language => text().withDefault(const Constant('en'))();
|
||||
TextColumn get language => text().nullable()();
|
||||
|
||||
/// Date of user creation
|
||||
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
|
||||
|
||||
Reference in New Issue
Block a user