make language nullable
This commit is contained in:
@@ -27,7 +27,7 @@ class OwnUser extends User {
|
|||||||
Map<String, Object?> extraData = const {},
|
Map<String, Object?> extraData = const {},
|
||||||
bool banned = false,
|
bool banned = false,
|
||||||
List<String> teams = const [],
|
List<String> teams = const [],
|
||||||
String language = 'en',
|
String? language,
|
||||||
}) : super(
|
}) : super(
|
||||||
id: id,
|
id: id,
|
||||||
role: role,
|
role: role,
|
||||||
|
|||||||
@@ -39,6 +39,6 @@ OwnUser _$OwnUserFromJson(Map<String, dynamic> json) {
|
|||||||
teams:
|
teams:
|
||||||
(json['teams'] as List<dynamic>?)?.map((e) => e as String).toList() ??
|
(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.extraData = const {},
|
||||||
this.banned = false,
|
this.banned = false,
|
||||||
this.teams = const [],
|
this.teams = const [],
|
||||||
this.language = 'en',
|
this.language,
|
||||||
}) : createdAt = createdAt ?? DateTime.now(),
|
}) : createdAt = createdAt ?? DateTime.now(),
|
||||||
updatedAt = updatedAt ?? DateTime.now();
|
updatedAt = updatedAt ?? DateTime.now();
|
||||||
|
|
||||||
@@ -87,12 +87,8 @@ class User extends Equatable {
|
|||||||
/// The language this user prefers.
|
/// The language this user prefers.
|
||||||
///
|
///
|
||||||
/// Defaults to 'en'.
|
/// Defaults to 'en'.
|
||||||
@JsonKey(
|
@JsonKey(includeIfNull: false)
|
||||||
includeIfNull: false,
|
final String? language;
|
||||||
toJson: Serializer.readOnly,
|
|
||||||
defaultValue: 'en',
|
|
||||||
)
|
|
||||||
final String language;
|
|
||||||
|
|
||||||
/// Shortcut for user name
|
/// Shortcut for user name
|
||||||
String get name {
|
String get name {
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ User _$UserFromJson(Map<String, dynamic> json) {
|
|||||||
teams:
|
teams:
|
||||||
(json['teams'] as List<dynamic>?)?.map((e) => e as String).toList() ??
|
(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('online', readonly(instance.online));
|
||||||
writeNotNull('banned', readonly(instance.banned));
|
writeNotNull('banned', readonly(instance.banned));
|
||||||
val['extra_data'] = instance.extraData;
|
val['extra_data'] = instance.extraData;
|
||||||
writeNotNull('language', readonly(instance.language));
|
writeNotNull('language', instance.language);
|
||||||
return val;
|
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;
|
final String? role;
|
||||||
|
|
||||||
/// The language this user prefers.
|
/// The language this user prefers.
|
||||||
final String language;
|
final String? language;
|
||||||
|
|
||||||
/// Date of user creation
|
/// Date of user creation
|
||||||
final DateTime createdAt;
|
final DateTime createdAt;
|
||||||
@@ -3127,7 +3127,7 @@ class UserEntity extends DataClass implements Insertable<UserEntity> {
|
|||||||
UserEntity(
|
UserEntity(
|
||||||
{required this.id,
|
{required this.id,
|
||||||
this.role,
|
this.role,
|
||||||
required this.language,
|
this.language,
|
||||||
required this.createdAt,
|
required this.createdAt,
|
||||||
required this.updatedAt,
|
required this.updatedAt,
|
||||||
this.lastActive,
|
this.lastActive,
|
||||||
@@ -3143,7 +3143,7 @@ class UserEntity extends DataClass implements Insertable<UserEntity> {
|
|||||||
role: const StringType()
|
role: const StringType()
|
||||||
.mapFromDatabaseResponse(data['${effectivePrefix}role']),
|
.mapFromDatabaseResponse(data['${effectivePrefix}role']),
|
||||||
language: const StringType()
|
language: const StringType()
|
||||||
.mapFromDatabaseResponse(data['${effectivePrefix}language'])!,
|
.mapFromDatabaseResponse(data['${effectivePrefix}language']),
|
||||||
createdAt: const DateTimeType()
|
createdAt: const DateTimeType()
|
||||||
.mapFromDatabaseResponse(data['${effectivePrefix}created_at'])!,
|
.mapFromDatabaseResponse(data['${effectivePrefix}created_at'])!,
|
||||||
updatedAt: const DateTimeType()
|
updatedAt: const DateTimeType()
|
||||||
@@ -3165,7 +3165,9 @@ class UserEntity extends DataClass implements Insertable<UserEntity> {
|
|||||||
if (!nullToAbsent || role != null) {
|
if (!nullToAbsent || role != null) {
|
||||||
map['role'] = Variable<String?>(role);
|
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['created_at'] = Variable<DateTime>(createdAt);
|
||||||
map['updated_at'] = Variable<DateTime>(updatedAt);
|
map['updated_at'] = Variable<DateTime>(updatedAt);
|
||||||
if (!nullToAbsent || lastActive != null) {
|
if (!nullToAbsent || lastActive != null) {
|
||||||
@@ -3186,7 +3188,7 @@ class UserEntity extends DataClass implements Insertable<UserEntity> {
|
|||||||
return UserEntity(
|
return UserEntity(
|
||||||
id: serializer.fromJson<String>(json['id']),
|
id: serializer.fromJson<String>(json['id']),
|
||||||
role: serializer.fromJson<String?>(json['role']),
|
role: serializer.fromJson<String?>(json['role']),
|
||||||
language: serializer.fromJson<String>(json['language']),
|
language: serializer.fromJson<String?>(json['language']),
|
||||||
createdAt: serializer.fromJson<DateTime>(json['createdAt']),
|
createdAt: serializer.fromJson<DateTime>(json['createdAt']),
|
||||||
updatedAt: serializer.fromJson<DateTime>(json['updatedAt']),
|
updatedAt: serializer.fromJson<DateTime>(json['updatedAt']),
|
||||||
lastActive: serializer.fromJson<DateTime?>(json['lastActive']),
|
lastActive: serializer.fromJson<DateTime?>(json['lastActive']),
|
||||||
@@ -3201,7 +3203,7 @@ class UserEntity extends DataClass implements Insertable<UserEntity> {
|
|||||||
return <String, dynamic>{
|
return <String, dynamic>{
|
||||||
'id': serializer.toJson<String>(id),
|
'id': serializer.toJson<String>(id),
|
||||||
'role': serializer.toJson<String?>(role),
|
'role': serializer.toJson<String?>(role),
|
||||||
'language': serializer.toJson<String>(language),
|
'language': serializer.toJson<String?>(language),
|
||||||
'createdAt': serializer.toJson<DateTime>(createdAt),
|
'createdAt': serializer.toJson<DateTime>(createdAt),
|
||||||
'updatedAt': serializer.toJson<DateTime>(updatedAt),
|
'updatedAt': serializer.toJson<DateTime>(updatedAt),
|
||||||
'lastActive': serializer.toJson<DateTime?>(lastActive),
|
'lastActive': serializer.toJson<DateTime?>(lastActive),
|
||||||
@@ -3214,7 +3216,7 @@ class UserEntity extends DataClass implements Insertable<UserEntity> {
|
|||||||
UserEntity copyWith(
|
UserEntity copyWith(
|
||||||
{String? id,
|
{String? id,
|
||||||
Value<String?> role = const Value.absent(),
|
Value<String?> role = const Value.absent(),
|
||||||
String? language,
|
Value<String?> language = const Value.absent(),
|
||||||
DateTime? createdAt,
|
DateTime? createdAt,
|
||||||
DateTime? updatedAt,
|
DateTime? updatedAt,
|
||||||
Value<DateTime?> lastActive = const Value.absent(),
|
Value<DateTime?> lastActive = const Value.absent(),
|
||||||
@@ -3224,7 +3226,7 @@ class UserEntity extends DataClass implements Insertable<UserEntity> {
|
|||||||
UserEntity(
|
UserEntity(
|
||||||
id: id ?? this.id,
|
id: id ?? this.id,
|
||||||
role: role.present ? role.value : this.role,
|
role: role.present ? role.value : this.role,
|
||||||
language: language ?? this.language,
|
language: language.present ? language.value : this.language,
|
||||||
createdAt: createdAt ?? this.createdAt,
|
createdAt: createdAt ?? this.createdAt,
|
||||||
updatedAt: updatedAt ?? this.updatedAt,
|
updatedAt: updatedAt ?? this.updatedAt,
|
||||||
lastActive: lastActive.present ? lastActive.value : this.lastActive,
|
lastActive: lastActive.present ? lastActive.value : this.lastActive,
|
||||||
@@ -3283,7 +3285,7 @@ class UserEntity extends DataClass implements Insertable<UserEntity> {
|
|||||||
class UsersCompanion extends UpdateCompanion<UserEntity> {
|
class UsersCompanion extends UpdateCompanion<UserEntity> {
|
||||||
final Value<String> id;
|
final Value<String> id;
|
||||||
final Value<String?> role;
|
final Value<String?> role;
|
||||||
final Value<String> language;
|
final Value<String?> language;
|
||||||
final Value<DateTime> createdAt;
|
final Value<DateTime> createdAt;
|
||||||
final Value<DateTime> updatedAt;
|
final Value<DateTime> updatedAt;
|
||||||
final Value<DateTime?> lastActive;
|
final Value<DateTime?> lastActive;
|
||||||
@@ -3316,7 +3318,7 @@ class UsersCompanion extends UpdateCompanion<UserEntity> {
|
|||||||
static Insertable<UserEntity> custom({
|
static Insertable<UserEntity> custom({
|
||||||
Expression<String>? id,
|
Expression<String>? id,
|
||||||
Expression<String?>? role,
|
Expression<String?>? role,
|
||||||
Expression<String>? language,
|
Expression<String?>? language,
|
||||||
Expression<DateTime>? createdAt,
|
Expression<DateTime>? createdAt,
|
||||||
Expression<DateTime>? updatedAt,
|
Expression<DateTime>? updatedAt,
|
||||||
Expression<DateTime?>? lastActive,
|
Expression<DateTime?>? lastActive,
|
||||||
@@ -3340,7 +3342,7 @@ class UsersCompanion extends UpdateCompanion<UserEntity> {
|
|||||||
UsersCompanion copyWith(
|
UsersCompanion copyWith(
|
||||||
{Value<String>? id,
|
{Value<String>? id,
|
||||||
Value<String?>? role,
|
Value<String?>? role,
|
||||||
Value<String>? language,
|
Value<String?>? language,
|
||||||
Value<DateTime>? createdAt,
|
Value<DateTime>? createdAt,
|
||||||
Value<DateTime>? updatedAt,
|
Value<DateTime>? updatedAt,
|
||||||
Value<DateTime?>? lastActive,
|
Value<DateTime?>? lastActive,
|
||||||
@@ -3370,7 +3372,7 @@ class UsersCompanion extends UpdateCompanion<UserEntity> {
|
|||||||
map['role'] = Variable<String?>(role.value);
|
map['role'] = Variable<String?>(role.value);
|
||||||
}
|
}
|
||||||
if (language.present) {
|
if (language.present) {
|
||||||
map['language'] = Variable<String>(language.value);
|
map['language'] = Variable<String?>(language.value);
|
||||||
}
|
}
|
||||||
if (createdAt.present) {
|
if (createdAt.present) {
|
||||||
map['created_at'] = Variable<DateTime>(createdAt.value);
|
map['created_at'] = Variable<DateTime>(createdAt.value);
|
||||||
@@ -3426,10 +3428,8 @@ class $UsersTable extends Users with TableInfo<$UsersTable, UserEntity> {
|
|||||||
typeName: 'TEXT', requiredDuringInsert: false);
|
typeName: 'TEXT', requiredDuringInsert: false);
|
||||||
final VerificationMeta _languageMeta = const VerificationMeta('language');
|
final VerificationMeta _languageMeta = const VerificationMeta('language');
|
||||||
late final GeneratedColumn<String?> language = GeneratedColumn<String?>(
|
late final GeneratedColumn<String?> language = GeneratedColumn<String?>(
|
||||||
'language', aliasedName, false,
|
'language', aliasedName, true,
|
||||||
typeName: 'TEXT',
|
typeName: 'TEXT', requiredDuringInsert: false);
|
||||||
requiredDuringInsert: false,
|
|
||||||
defaultValue: const Constant('en'));
|
|
||||||
final VerificationMeta _createdAtMeta = const VerificationMeta('createdAt');
|
final VerificationMeta _createdAtMeta = const VerificationMeta('createdAt');
|
||||||
late final GeneratedColumn<DateTime?> createdAt = GeneratedColumn<DateTime?>(
|
late final GeneratedColumn<DateTime?> createdAt = GeneratedColumn<DateTime?>(
|
||||||
'created_at', aliasedName, false,
|
'created_at', aliasedName, false,
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ class Users extends Table {
|
|||||||
TextColumn get role => text().nullable()();
|
TextColumn get role => text().nullable()();
|
||||||
|
|
||||||
/// The language this user prefers.
|
/// The language this user prefers.
|
||||||
TextColumn get language => text().withDefault(const Constant('en'))();
|
TextColumn get language => text().nullable()();
|
||||||
|
|
||||||
/// Date of user creation
|
/// Date of user creation
|
||||||
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
|
DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
|
||||||
|
|||||||
Reference in New Issue
Block a user