added missing test file for build to run #730
63
frontend/pshared/test/ledger/account_mapper_test.dart
Normal file
63
frontend/pshared/test/ledger/account_mapper_test.dart
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
|
import 'package:pshared/data/dto/describable.dart';
|
||||||
|
import 'package:pshared/data/dto/ledger/account.dart';
|
||||||
|
import 'package:pshared/data/dto/ledger/role.dart';
|
||||||
|
import 'package:pshared/data/dto/ledger/status.dart';
|
||||||
|
import 'package:pshared/data/dto/ledger/type.dart';
|
||||||
|
import 'package:pshared/data/mapper/ledger/account.dart';
|
||||||
|
|
||||||
|
LedgerAccountDTO _baseDto({
|
||||||
|
DescribableDTO? describable,
|
||||||
|
Map<String, String>? metadata,
|
||||||
|
}) {
|
||||||
|
return LedgerAccountDTO(
|
||||||
|
ledgerAccountRef: 'ledger:r1',
|
||||||
|
organizationRef: 'org:1',
|
||||||
|
accountCode: 'asset:rub:abc',
|
||||||
|
accountType: LedgerAccountTypeDTO.asset,
|
||||||
|
currency: 'RUB',
|
||||||
|
status: LedgerAccountStatusDTO.active,
|
||||||
|
allowNegative: false,
|
||||||
|
role: LedgerAccountRoleDTO.operating,
|
||||||
|
metadata: metadata,
|
||||||
|
describable: describable,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
group('LedgerAccountDTOMapper', () {
|
||||||
|
test('keeps describable name when it is present', () {
|
||||||
|
final dto = _baseDto(
|
||||||
|
describable: const DescribableDTO(name: 'Main RUB', description: 'ops'),
|
||||||
|
metadata: const {'name': 'Metadata Name'},
|
||||||
|
);
|
||||||
|
|
||||||
|
final domain = dto.toDomain();
|
||||||
|
|
||||||
|
expect(domain.name, equals('Main RUB'));
|
||||||
|
expect(domain.description, equals('ops'));
|
||||||
|
});
|
||||||
|
|
||||||
|
test('uses metadata name when describable is absent', () {
|
||||||
|
final dto = _baseDto(metadata: const {'name': 'Metadata Name'});
|
||||||
|
|
||||||
|
final domain = dto.toDomain();
|
||||||
|
|
||||||
|
expect(domain.name, equals('Metadata Name'));
|
||||||
|
expect(domain.description, isNull);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('uses metadata name when describable name is blank', () {
|
||||||
|
final dto = _baseDto(
|
||||||
|
describable: const DescribableDTO(name: ' ', description: 'ops'),
|
||||||
|
metadata: const {'name': 'Metadata Name'},
|
||||||
|
);
|
||||||
|
|
||||||
|
final domain = dto.toDomain();
|
||||||
|
|
||||||
|
expect(domain.name, equals('Metadata Name'));
|
||||||
|
expect(domain.description, equals('ops'));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user